ようこそのお運びで、厚く御礼申し上げます。
14日目です。今回はタイトル処理の応用をしてみます。
「特定のカテゴリ」の記事のタイトルに、文字列を追加してみる
特定のカテゴリに属しているすべての記事のタイトルの末尾に、文字列を追加してみます。
まずは、functions.phpに書いてみます。
では、functions.phpに以下のコードを書きました。
function paka3_TitleCatAddStr($title, $post_ID){ if(is_single($post_ID) ){ //表示するカテゴリIDを指定する $catID = 13; //一つでも見つかれば離脱 foreach(get_the_category() as $cat){ if($cat->cat_ID == $catID){ $str = "【WordPress1日1プラグイン】"; return $title.$str; } } } //条件に合わない場合はそのまま返す return $title; } add_filter('the_title','paka3_TitleCatAddStr',10,2);
ポイントはどこ?
- 引数「$title」は現在表示している記事のタイトルです。
- 引数「$post_ID」は現在表示している記事のIDです。
- 現在の記事のカテゴリはget_the_category()取得します
- add_filter:指定したフィルターフックに、関数をフックします
- add_filter('フックするフィルター名','呼び出す関数名',"10","引数の数")
今回は引数を2つ使ったので、add_filterの第4引数は”2”とします。 - タイトルのフィルター名は「the_title」
コードをプラグイン用のファイルにします
それではfunctions.phpに書いたコードを消して、
「paka3_TitleCatAddStr.php」というファイルを作成し、以下のコードを記入します。
このファイルを[wp-content]>「plugins」ディレクトリに入れ、管理画面で有効にして完了です。
今回のまとめ
カテゴリを指定したタイトルの処理を行ってみました。実際に処理を行う場合は、他のところで不具合が出る可能性があると前回書いたのですが、その場合は早めに諦めてテンプレート等で処理をした方がよいかもしれません。