ようこそのお運びで、厚く御礼申し上げます。
7日目です。今回はカテゴリを指定した最新記事の処理です。
すべての記事に特定のカテゴリの最新記事のリンクを3件入れる。
すべての記事の末尾に、指定した「特定のカテゴリ」の最新記事のタイトルリンクを3件挿入します。
まずは、functions.phpに書いてみます。
では、functions.phpに以下のコードを書きました。
 function paka3_NewCategoryPosts($contentData) {
  if(is_single()){
     //表示するカテゴリIDを指定する
      $catID = 3;
    //条件定義
      $args = array(
    		    'posts_per_page'=>3,
    		    'orderby'       =>'post_date', //投稿日
    		    'order'         =>'DESC',
    		    'category'      => $catID,
    		);
      $posts =get_posts( $args );
      //リスト表示
      $list="<div class='newPosts'><b>".get_cat_name($catID)."の最新記事</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_NewCategoryPosts');
ポイントはどこ?
- 引数「$contentData」は記事本文です。
- add_filter:指定したフィルターフックに、関数をフックします
 add_filter('フックするフィルター名','呼び出す関数名')
- カテゴリのget_cat_nameで名前を取得します
get_cat_name($catID) 
- get_postsで取得した更新日のフォーマット定義は、
$postDate = mysql2date('Y年m月d日', $post->post_modified);
- get_postsで取得してforeachでまわす場合(get_postで取得したデータの場合)
 パーマリンクにはちょっと小細工が必要($post->guidでは正しくない)get_permalink($post->id) 
コードをプラグイン用のファイルにします
それではfunctions.phpに書いたコードを消して、
「paka3_NewCategoryPosts.php」というファイルを作成し、以下のコードを記入します。
このファイルを[wp-content]>「plugins」ディレクトリに入れ、管理画面で有効にして完了です。
今回のまとめ
今回は手動でカテゴリIDを設定した上で、すべての記事に最新記事を表示させました。
get_postにカテゴリIDを設定すれば、カテゴリの記事が取得できるので、そこまで難しいものではありません。
次回は、現在の記事のカテゴリIDから最新の記事を表示できるようにしてみます。
 
                   		               		  