WordPressで指定したカテゴリーに属する記事の一覧を、ショートコードを使って出力する方法を紹介します。
当ブログでも設置していますが、記事の目次ページを作成する時などに便利です。
functions.phpでショートコードを作成する
まずは、functions.phpに以下のコードを追加して、記事の一覧を出力するショートコードを使えるようにします。
function getCatItems($atts, $content = null) { extract(shortcode_atts(array( "num" => '5', "cat" => '' ), $atts)); global $post; $oldpost = $post; $myposts = get_posts('numberposts='.$num.'&order=DESC&orderby=post_date&category='.$cat); $retHtml='<ul>'; foreach($myposts as $post) : setup_postdata($post); $retHtml.='<li><a href="'.get_permalink().'">'.the_title("","",false).'</a></li>'; endforeach; $retHtml.='</ul>'; $post = $oldpost; return $retHtml; } add_shortcode("list", "getCatItems");
“num”と”cat”は、デフォルトの表示数とカテゴリーを指定します。表示数やカテゴリーは、ショートコードを記述する際に指定できるので、とりあえず上記をそのままコピペで大丈夫です。
記事の一覧を出力する
functions.phpに上記コードを追加したら、あとは投稿や固定ページ内に以下のショートコードを記述すればOKです。
[[list cat="1" num="10"]]
catにはカテゴリーID、numには出力数を入力します。上記だと、カテゴリーIDの記事を10記事出力する、という意味になります。
テーマファイル内に直接記述する場合は、以下のようにdo_shortcode関数を使います。
echo do_shortcode('[[list cat="1" num="10"]]');
全記事を出力したい場合は、numの値を”-1″にしてください。
あとがき
気軽に一覧を出力できるので、非常に便利です。色んなところで活用できると思います。