WordPress

記事に「特定のタグの最新記事」のリンクを3件入れる:【9日目】WordPress1日1プラグイン

更新日:

ようこそのお運びで、厚く御礼申し上げます。
9日目です。さてさて、前回前々回のカテゴリネタのタグ版です。

記事に「特定のタグの最新記事」のリンクを3件入れる

すべての記事の末尾に、指定した「特定のタグ」の最新記事のタイトルリンクを3件挿入します。

まずは、functions.phpに書いてみます。

では、functions.phpに以下のコードを書きました。

 function paka3_TagNewPosts($contentData) {
  if(is_single()){
     //表示するタグを指定する
      $tag = "タグテスト1";

    //条件定義
      $args = array(
                    'posts_per_page'=>3,
                    'orderby'       =>'post_date', //投稿日
                    'order'         =>'DESC',
                    'tag'           => $tag,
    		);
      $posts =get_posts( $args );
      //リスト表示
      $list="<div class='newPosts'><b>".$tag."の最新記事</b>";
      $list.="<ul class='mytaglist_ul'>";
      foreach($posts as $post){
    	//更新日のフォーマット変更
    	$postDate = mysql2date('Y年m月d日', $post->post_date);
           $list.="<li><a href='". get_permalink($post->ID)."'>".$post->post_title."(更新日:".$postDate.")</a></li>";
      }
      $list.="</ul></div>";
      return $contentData.$list;
     }
     return $contentData;
  }
 add_filter('the_content','paka3_TagNewPosts');

本文

ポイントはどこ?

  • 引数「$contentData」は記事本文です。
  • add_filter:指定したフィルターフックに、関数をフックします
    add_filter('フックするフィルター名','呼び出す関数名')
  • get_postsの条件定義でタグを指定します。
     //条件定義
          $args = array(
                        'posts_per_page'=>3,
                        'orderby'       =>'modified', //更新日
                        'order'         =>'DESC',
                        'tag'           => $tag,
        		);
          $posts =get_posts( $args );
    
  • get_postsで取得した更新日のフォーマット定義は、
    $postDate = mysql2date('Y年m月d日', $post->post_modified);
  • get_postsで取得してforeachでまわす場合(get_postで取得したデータの場合)
    パーマリンクにはちょっと小細工が必要($post->guidでは正しくない

    get_permalink($post->id)

コードをプラグイン用のファイルにします

それではfunctions.phpに書いたコードを消して、
paka3_TagNewPosts.php」というファイルを作成し、以下のコードを記入します。

このファイルを[wp-content]>「plugins」ディレクトリに入れ、管理画面で有効にして完了です。

今回のまとめ

今回、タグは単一選択で作ってみました。配列にして…入れ子にして…とかくとわかりにくいですし、この方がプロトタイプとして色々カスタマイズできますからね。とりあえずはわかりやすくです。にしてもタグは、使い方によってはいろんな使い方ができそうですね。

-WordPress
-, ,

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