ようこそのお運びで、厚く御礼申し上げます。
5日目です。カテゴリの次は、タグにしましょ!ということで、今回はタグの取得です。
「特定のタグ」のついた記事の末尾に文字列・画像を追加してみる。
4日目のカテゴリと同じく、文字列・画像をすべての記事ではなく、特定のタグのついた記事に表示させるようにしてみます。
まずは、functions.phpに書いてみます。
では、functions.phpに以下のコードを書きました。
function paka3_TagAddContents($contentData) { if(is_single()){ //タグの指定(配列) $tags = array("タグテスト1","タグテスト2"); //現在の記事のタグ一覧を取得 $nowTags =array(); foreach(get_the_tags() as $tag){ array_push($nowTags,$tag->name); } //検索処理 foreach($tags as $tag){ if(array_search($tag,$nowTags)!==false){ //タグが一つでもあった場合の処理 $str = "<div>タグが「タグテスト1」or「タグテスト2」でしか表示されないよ</div>"; $str .= "<img src='http://www.paka3.net/wp-content/uploads/2014/01/wpicon1.png' alt='1日1プラグイン'>"; return $contentData.$str; //離脱 } } } //条件に合わない場合はそのまま返す return $contentData; } add_filter('the_content','paka3_TagAddContents');
本文
ポイントはどこ?
4日目のカテゴリの時と同じく、タグをどう取得するか?またどう処理をするかというところです。
もっと良い方法があるかもしれませんが、今回はこれで行きます。
- 引数「$contentData」は記事本文です。
- add_filter:指定したフィルターフックに、関数をフックします
add_filter('フックするフィルター名','呼び出す関数名') - 指定する特定のタグは複数でも可能にしています。
$tags = array("タグテスト1","タグテスト2");
- カテゴリの情報を取得するには
get_the_tags() - array_searchは見つかった配列の要素を返すので、0が帰ってきた場合の対処として
array_search($catID,$nowCatID)!==false
- ※1/24:is_single()の条件処理を追加しました。
個別ページ以外のすべての記事ページに表示します。一覧で表示される不具合を回避
コードをプラグイン用のファイルにします
それではfunctions.phpに書いたコードを消して、
「paka3_TagAddContents.php」というファイルを作成し、以下のコードを記入します。
このファイルを[wp-content]>「plugins」ディレクトリに入れ、管理画面で有効にして完了です。
今回のまとめ
今回はほぼ4日目の応用になりますが、タグの取得と、その後の処理をどうするか?という部分がポイントになったと思います。主にタグとカテゴリの分岐ができれば、なんとかなりそうなきがしたので、先にこの処理を行ってみました(カスタムタクソノミーには対応していませんのであしからず)。