WordPress

特定のタグの記事に文字列・画像を追加してみる:【5日目】WordPress1日1プラグイン

更新日:

ようこそのお運びで、厚く御礼申し上げます。
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日目の応用になりますが、タグの取得と、その後の処理をどうするか?という部分がポイントになったと思います。主にタグとカテゴリの分岐ができれば、なんとかなりそうなきがしたので、先にこの処理を行ってみました(カスタムタクソノミーには対応していませんのであしからず)。

-WordPress
-, ,

Copyright© アルパカ@ラボ , 2024 All Rights Reserved Powered by AFFINGER5.