【ワードプレス】固定ページ内にカテゴリの記事一覧を表示

ワードプレスを使っていて、記事が結構たまってくると固定ページ内で記事をまとめたいと思ったことはありませんか?

実はPHPというプログラム言語で書かれたコードを記事に埋め込むことで簡単に出来ます。
PHPとは正式名称を「PHP:Hypertext Preprocessor」といい、C言語で書かれたオープンソースのスクリプト言語です。

投稿記事の中にPHPのコードを記載しても、WordPressの固定ページや投稿ページではphpは動作しません。
固定ページ・記事内でPHPが動くように「Exec-PHP」というプラグインを入れましょう。

有効化すれば固定ページ・記事内でもPHPが実行されるようになります。

記事一覧を表示させたいカテゴリIDを調べます。
[1] WordPress管理画面左メニューの投稿 → カテゴリーに入ります
[2]カテゴリーリストの中から表示させたいものクリックして編集画面を開きます
[3]ブラウザのアドレスバーに、例えば以下のように、URLが表示されます。
URLの「tag_ID=5」の数字がカテゴリーIDです。
(編集画面のURL例)

[php]
http://サイトのアドレス/edit-tags.php?action=edit&taxonomy=category&tag_ID=5&post_type=post
[/php]

指定したカテゴリの記事一覧を表示させるコード

以下のコードを固定ページに記載します
先程調べたカテゴリーIDを、以下(’5′,’15’)のように区切って記載します。

[php]
<?php
global $post;
$tmp_post = $post;
$category_ids = array( ’21’ ); //カテゴリーIDを指定
$numberposts = ‘5’; //一覧表示したい記事数を数字で指定
foreach ( $category_ids as $category_id ) {
?>
<h3><?php echo get_cat_name( $category_id ); ?>についてのリンク</h3>
<ul>
<?php
$postslist = get_posts( "category=$category_id&numberposts=$numberposts&order=DESC&orderby=date" );
foreach ( $postslist as $post ) {
?>
<li> <a href=<?php echo get_permalink( $post->ID ); ?>><?php echo $post->post_title; ?></a></li>
<?php
}
?>
</ul>
<?php
}
$post = $tmp_post;
?>
[/php]

h3の部分はタイトルをPHPで自動挿入してタイトルタグで囲んでいるだけなので文言も追加出来ます。
これで更新すれば記事一覧が表示されます。

【表示例】

についてのリンク


もしうまくいかなかった場合は、プラグインの「Exec-PHP」が有効になっているか確認してください。
また、一番初めと最後の「php」「/php」の部分はPHPのコード内容を実行せずに公開するためのタグなので、実際に使用する時には含めないように注意してください。