プラグインcustomizable-post-listings の改良 (3)

投稿日: 2008年12月27日 | カテゴリ:『ワードプレス』>記事整理システム(CPL)

WordPressのプラグインであるcustomizable-post-listingsは多くの機能を持った記事整理システムです。このプラグインの改良については既に2回にわたって明らかにしてあります。今回はその3段目として新たに追加した機能について紹介いたしま。

1. 抜粋用%変換タグの改良

抜粋用の%変換タグ=%post_excerpt_full%の抜粋制限語数の指定をオプション画面(excerpt_length)においてできるようにしました。4行目でこの変更を反映させてあります。

    case '%post_excerpt_full%':
      remove_filter ('the_content',  'wpautop');
      $mycontent = strip_tags("$post->post_content");
      $new = mb_substr($mycontent,0,$excerpt_length)." [...]";
     break;
2. ポップアップ抜粋表示の%変換タグを追加

ver1.01では、この機能は既存の%タグである %post_url%の内容を変更して使用していましたが、このタグのオリジナル機能の使用意義が認識されたので、新たに%post_url_popup%を追加しました(注)。スクリプトの内容は、以前のバージョンと変わりません。参考のためにその内容を掲載しておきます。

 case '%post_url_popup%':
   remove_filter ('the_content',  'wpautop');
   $mycontent = strip_tags("$post->post_content");
   //$mycontent = str_replace("\n","",$mycontent);
   //$mycontent = str_replace("\r","",$mycontent);
   $mycontent = mb_substr($mycontent, 0, $excerpt_words)." ...";
   $mycontent = str_replace(' ',' ',$mycontent);
   if (!$title) {$title = the_title('', '', false);}
     //$ntitle = $title;
     $new = '<a href="'.get_permalink().'" title='.$mycontent.'>'.$title.'</a>';
break;

2行目:自動改行タグ挿入処理を無効にします。
3行目:記事の内容を取得して全てのタグを取り除きます。
6行目:先頭から変数$excerpt_wordsで指定した語数までの文字列を取得します。
7行目:Titleの内容に文字コードのスペースが入っていると、そこで表示が終わってしまうので、HTML文字表記に変換します。
8行目:表題を表示せずに変数に取得します。
10行目:titleに記事内容の抜粋表示を挿入する表題リンクの設定です。

以上の設定では、抜粋内容に改行コードが入っているとそこで表示が止まってしまいます。通常、記事の先頭の部分は、その要約が表示される部分でほとんど改行を差し挟むことがないのでこのような設定にしてあります。どうしても改行以下も表示したいという場合には、4,5行目のコメントアウトを削除してください。そうすれば、CR+LFの改行が全て削除されます。

(注)上記の例のように、オリジナルの%タグ以外の%タグを新たに追加する場合には、$percent_tags = array() に追加した%変換タグ名を新たに挿入してください(この関数は1208行辺りから始まります)。例えば、以下のようになります。4行目が新たに追加したタグです。

$percent_tags = array(
....
  "%post_type%",  // Post type of post
  "%post_url_popup%",//added by H.Suzuki=the excerpt included in Link_title
  "%post_url%",  // URL for post
...
);
3. カテゴリー/ サブカテゴリーの表題を独自に取り出す%変換タグの追加

%post_categories%あるいは%post_categories_URL%変換タグを使用すれば、その記事が属しているカテゴリ、サブカテゴリ…を全て表示してくれます。しかし、カテゴリあるいはサブカテゴリの題名を単独に取り出して使いたい場合があります。例えば、本サイトのプルダウン式記事検索システムのsubmenuの欄に使用されるサブカテゴリー名です。確かに直接カテゴリー名を記入すれば済むことなのですが、何かの都合でカテゴリー名を変えた場合にはその変更が反映されません。このために、カテゴリー名を独自に取得する機能を付け加えました。

    case '%post_subcategories%':
     $cats = get_the_category($post->ID);
     if (count($cats)==1) $new = $cats[0]->cat_name;
     if (count($cats)==2) $new = $cats[1]->cat_name;
    break;
    case '%post_subcategories_URL%':
      $cats = get_the_category($post->ID);
      $new = '';
     if (count($cats)==1) {
      $c_name = $cats[0]->cat_name;
      $c_name = str_replace ("『","",$c_name);
      $c_name = str_replace ("』","",$c_name);
      $new .= '<a href="' . get_category_link($cats[0]->cat_ID) . '" title="'.$c_name.' に属する記事を全て表示">';
      $new .= $c_name;
      $new .= '</a>';}
     if (count($cats)==2) {$new .= '<a href="' . get_category_link($cats[1]->cat_ID) . '" title="'.$cats[1]->cat_name.' に属する記事を全て表示">';
      $new .= $cats[1]->cat_name;
      $new .= '</a>';}
     break;
    case '%post_pacategories%':
     $cats = get_the_category($post->ID);
     $new = $cats[0]->cat_name;
     $new = str_replace ("『","",$new);
     $new = str_replace ("』","",$new);
    break;
    case '%post_pacategories_URL%':
      $cats = get_the_category($post->ID);
      $c_name = $cats[0]->cat_name;
      $c_name = str_replace ("『","",$c_name);
      $c_name = str_replace ("』","",$c_name);
      $new = "";
      $new .= '<a href="' . get_category_link($cats[0]->cat_ID) . '" title="'.$c_name.' に属する記事を全て表示">';
      $new .= $c_name;
      $new .= '</a>';
     break;

1行目:サブカテゴリー題名の取得%タグの開始
2行目:カテゴリーIDを取得
3行目:サブカテゴリがない場合には親カテゴリを取得-サブカテゴリのない場合に、なにも表示されない状態を避けるため。
4行目:サブカテゴリを取得
6行目:URL付きサブカテゴリー取得%タグの開始
7行目:カテゴリIDの取得
8行目:$newの初期化
9行目:サブカテゴリがない場合、親カテゴリを取得
11~12行目:本サイトに特有の設定(『』(二重鍵括弧を削除する)、コメントアウトしても構わない。
13~18行目:サブカテゴリをリンク設定に埋め込むスクリプト
20~25行目:親カテゴリの題名だけを取得するスクリプト
26~35行目:URL付き親カテゴリの題名の取得


関連記事



コメントを残す




空欄に計算式を満たす数値を記入してください(必須)