WordPressの特定カテゴリ投稿をサイドバーに一覧表示させるphp追記

広告
サイドバーに新着記事を一覧表示するウィジットはありますが、あるカテゴリーの記事だけ一覧で表示したいので検索してみると、wordpress.orgのフォーラムに解決策がありました。

WordPressフォーラムの参考例

たどり着いたのは、WordPressフォーラムの「特定のカテゴリーの記事一覧を表示したい」http://ja.forums.wordpress.org/topic/154
という記事。 「get_posts」を使ってサイドバーに直接書くわけで、以下のような例がありました。
<?php
$posts = get_posts('numberposts=■&category=◆');
?>
<?php
if($posts): foreach($posts as $post): setup_postdata($post); ?>
<?php the_title(); ?>
<?php endforeach; endif;
?>
「■」は表示する記事の数で、「0」にすれば全記事が表示されます。
「◆」はカテゴリーのIDを半角数字で記入します。
なお、カテゴリーのIDが分からない場合は、管理メニューの「投稿」→「カテゴリー」をクリックし、表示されたカテゴリーにマウスを合わせると。ブラウザのステータスバーに「http://********略*****=category&tag_ID=3&post_type=post」のように表示される「ID=」の数字がカテゴリーIDです。

子テーマを作ってsidebar.phpに記載

これを子テーマの「sidebar.php」のウィジット取得の前か後に記入すれば記事タイトル一覧が表示されます。
記入位置は使っているテーマによって異なることと、子テーマを使っていない場合は、テーマをアップデートして「sidebar.php」が更新されたときに消えてしまうので注意が必要です。

記事をリンクにしたいときは、
<?php the_title(); ?>
の前後を
<a href="<?php the_permalink();?>">
</a>
でくくって
<a href="<?php the_permalink();?>"><?php the_title();?></a>
とすれば良さそうです。
なお、サイドバー部分のCSSによっては、記事タイトルがベタでつながって表示されるので、liでリストするか、brで処理すると見易くなります。

なお、一覧の位置は既存ウィジットの上か下になるので、ウィジットの項目が多く、任意のウィジット間に入れたい場合は「Category Posts Widget」のようなプラグインを使うのも一法です。
広告


広告