既存テーマのカスタマイズやクライアントワーク等、投稿のカテゴリーに関する情報を取得して、様々なコンテンツを作成・編集したいケースがあります。
今回は、これからWordPress開発を始める方向けに、カテゴリーを取得する関数を用途別に分類してみました。
はじめは、どの関数を使えばどの情報を取得できるのか、把握するのが難しいと思いますので、この記事を参考に、大まかな方向性を知っていただければ幸いです。
全てのカテゴリーを取得・表示する
フッターやサイドバーにカテゴリー一覧を表示する等、カテゴリーの情報を全て取得・表示したい時は、下記が便利です。
get_categories() | 取得したカテゴリー情報を元に自由なコンテンツを作りたい |
wp_list_categories() | カテゴリー一覧をリスト形式で表示したい |
wp_dropdown_categories() | カテゴリー一覧をドロップダウンリストで表示したい |
get_categories()
全てのカテゴリーをオブジェクトの配列で取得できます。HTML等を出力するわけではないので、取得した情報を元に、以下のように様々な用途に使用できます。
- HTML構造を自由に決めたい
- 名前やリンク以外の情報(説明文等)も取得したい
下記は、各カテゴリーの名前とURLと説明文を出力する記述例です。エディタに貼り付けて内容を確認してみてください。
$categories = get_categories( array(
'orderby' => 'name',
'order' => 'ASC'
));
foreach( $categories as $category ) {
echo '<p>カテゴリー名:' . $category->name. '</p>';
echo '<p>カテゴリーページのURL:' . get_category_link( $category->term_id ) . '</p>';
echo '<p>説明文:' . $category->description . '</p>';
}
wp_list_categories()
カテゴリー一覧をリスト形式で取得・表示できます。以下のように少ない記述量でリンク付きのカテゴリーリストを表示できるので、手軽に実装したい方におすすめです。
echo '<ul>';
wp_list_categories('title_li=');
echo '</ul>';
出力されるHTMLは下記になります。
<ul>
<li class="cat-item cat-item-ID"><a href="カテゴリーのURL">カテゴリー名</a></li>
<li class="cat-item cat-item-ID"><a href="カテゴリーのURL">カテゴリー名</a></li>
︙
</ul>
クラス等は自動で付与されますので、HTML構造を自分で決めたい場合は、get_categories()を使いましょう。
wp_dropdown_categories()
ドロップダウン形式(セレクトボックス)でカテゴリー一覧を表示できる関数です。こちらも用途がかなり決まっているので、ドロップダウンで表示したい時だけに使うのがおすすめです。
wp_dropdown_categories();
出力されるHTMLは下記になります。
<select name='cat' id='cat' class='postform' >
<option class="level-" value="ID">カテゴリー名</option>
<option class="level-" value="ID">カテゴリー名</option>
︙
</select>
各投稿に割り当てられたカテゴリーだけを取得
投稿で作成した記事に割り振られたカテゴリー情報だけを取得・表示したい時は下記を使用します。記事とカテゴリーをセットで扱いたい時に非常に便利です。
the_category() | カテゴリーをリスト形式で表示 |
get_the_category() | カテゴリーをオブジェクトの配列で取得 |
the_category()
投稿に属するカテゴリーをリスト形式で表示できます。
the_category();
デフォルトでは、以下のようなHTMLを出力します。
<ul class="post-categories">
<li><a href="https://wpreset.local/category/uncategorized/" rel="category tag">未分類</a></li>
︙
</ul>
パラメータを変更することで、空白区切りやコンマ区切り等もできます。
get_the_category()
投稿に属するカテゴリーをオブジェクトの配列で取得できます。フォーマットが決まっていないので、以下のようにカテゴリーの情報を元に様々な表現が可能となっています。
$categories = get_categories();
foreach( $categories as $category ) {
echo '<p>カテゴリー名:' . $category->name. '</p>';
echo '<p>カテゴリーページのURL:' . get_category_link( $category->term_id ) . '</p>';
echo '<p>説明文:' . $category->description . '</p>';
}
自分でHTMLを決めて、自由なコンテンツを作りたい場合におすすめです。
カテゴリーの特定の値を取得
ここまで紹介した関数は、カテゴリーの情報を全て取得したり、出力形式が決められているものでした。カテゴリーの名称や説明文だけを取得したい場合は、下記が便利です。
single_cat_title() | カテゴリー名を取得 |
category_description() | カテゴリーの説明文を取得 |
これらは、基本的にカテゴリーページやパンくずリスト等で使用することが多いです。下記に使用例をご紹介してますので、参考にしてください。
WordPressにはカテゴリーごとにテキストを表示できる機能がデフォルトで実装されています。カテゴリーの説明文やサブキャッチコピーとしても使えます。 ただし、テーマによっては元々「カテゴリーの説明」に対応していないテーマもあります。 本稿では、「カテゴリーの説明」をWordPressで...
一部の値からカテゴリーの情報を取得する
開発状況によっては、カテゴリーを1から全て取得しなくても、一部の値を元に他のデータを取得したいことがあります。そんな時は下記が便利です。
get_the_category_by_ID() | カテゴリーのIDからそのカテゴリーの名称を取得 |
get_category_by_slug() | カテゴリーのスラッグからオブジェクト(あらゆる情報)を取得 |
get_category_link() | カテゴリーのIDからカテゴリーページのURLを取得 |
まとめ
カテゴリーの様々な情報を取得する関数をご紹介しました。WordPressで本格的な開発を行わない方も、これらを覚えておくことで、エラーの原因を探すのに役に立つかもしれません。
当記事で紹介した方法でカテゴリー一覧を表示する場合、並びが昇順・降順等に決められてしまいます。もし、任意の並びにするなら、下記のプラグインを使って並び替えするのがおすすめです。
コメント