【WordPress】固定ページでカテゴリごとの投稿一覧を表示したい
問題
固定ページの中で、あるカテゴリに所属する投稿一覧と、あるカテゴリに所属する投稿一覧と......を表示したい。

答え
通常通り固定ページの中に、ちょっとしたプログラムが必要な処理を入れるなら、ショートコードを作ると簡単。
というわけで、指定した条件の投稿を一覧表示するショートコード。
ソース
function shortcode_get_posts($atts) {
extract(shortcode_atts(array(
'q' => '',
), $atts));
$posts = get_posts(html_entity_decode($q));
$html = '<ul>';
foreach ($posts as $p) {
$html .= '<li>';
$html .= date('Y年n月j日 ', strtotime($p->post_date));
$html .= '<a href="' . get_permalink($p->ID) . '">' . $p->post_title . '</a>';
$html .= '</li>';
}
$html .= '</ul>';
return $html;
}
add_shortcode('get_posts', 'shortcode_get_posts');
使用例
<div class="news">[get_posts q="category=3&numberposts=5"]</div> <div class="press">[get_posts q="category=5&numberposts=5"]</div> <div class="newitem">[get_posts q="post_type=item&numberposts=8"]</div>
ショートコードは、「wpautop() および wptexturize() による投稿の整形適用後にパースされます。」とのこと。ショートコードの処理をする関数の方では、パラメータが「category=3&numberposts=5」のような文字列になっている。整形される前の文字が欲しかったら、元に戻す処理(html_entity_decodeなど)をする。
日付、リンク、タイトル以外にも出力可能。
出力されるHTMLは適宜変更してご利用されたし。