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″にしてください。
あとがき
気軽に一覧を出力できるので、非常に便利です。色んなところで活用できると思います。

