WordPress、「あるカテゴリの記事」だけを表示したい場合に、カテゴリの「スラッグ」から識別して一覧を表示する方法を紹介します。
例えば、WordPressのトップページでお知らせ記事一覧を表示したり、カテゴリ毎に一覧を表示する場合に使えます。
cat_IDでもいいのですが、cat_IDは指定することができないため、指定できる「スラッグ」の方が何かと便利です。
ではソースです。
ソース
<?php
// スラッグからカテゴリ情報を取得
$hoge = get_category_by_slug('hoge');
// 該当するカテゴリIDのもの5件表示
query_posts('cat='.$hoge_cat->cat_ID.'&posts_per_page=5');
?>
▲まずは、スラッグからカテゴリ情報を取得する部分から。
<ul>
<?php
if (have_posts()) :
while (have_posts()) :
the_post();
?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
<?php endif; ?>
</ul>
▲ほんでHTML部分。
結果
<ul>
<li><a href="カテゴリ「hoge」のURL1">カテゴリ「hoge」のタイトル1</a></li>
<li><a href="カテゴリ「hoge」のURL2">カテゴリ「hoge」のタイトル2</a></li>
<li><a href="カテゴリ「hoge」のURL3">カテゴリ「hoge」のタイトル3</a></li>
<li><a href="カテゴリ「hoge」のURL4">カテゴリ「hoge」のタイトル4</a></li>
<li><a href="カテゴリ「hoge」のURL5">カテゴリ「hoge」のタイトル5</a></li>
</ul>
WordPress関数
get_category_by_slug()
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_category_by_slug
query posts()
https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts
the permalink()
https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/the_permalink
the_title()
https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/the_title
まとめ
WordPressの制作が多い割には、関数名を記憶していないので、一応メモとして残しておくことにしました。