直感的なナビゲーション構造を作成し、カテゴリー、タグ、カスタムタクソノミーを使用して、サイト上のユーザーエンゲージメントを向上させることができます。 しかし、ユーザーエクスペリエンスにおいて重要な要素は、各タクソノミーアーカイブページ内で明確なコンテキストを提供することだと考えています。
WordPressのアーカイブページに、現在のタクソノミータイトルやURLなどの関連情報を直接表示することで、このコンテキストをプロバイダーに提供することができます。
この投稿では、WordPressで現在のタクソノミータイトルやURLなどを表示することで、ユーザーがサイト階層における自分の位置を理解しやすくする方法を紹介します。
WordPressテーマでタクソノミーアーカイブテンプレートを作成する
WordPressテーマ開発を学んだり、独自のカスタムWordPressテーマを作ったりしている場合、カテゴリーやタグなどのタクソノミーページ、またはサイトにあるカスタムタクソノミー用のカスタムテンプレートを作りたいと思うかもしれません。
WordPressには強力なテンプレートエンジンが搭載されています。これによって、WordPressサイトのさまざまな部分のカスタマイザーテンプレートをテーマで簡単に作成することができます。
例えば、テーマにcategory.phpテンプレートを作成するだけで、WordPressはそのテンプレートを使ってカテゴリー・アーカイブページを表示します。
同様に、taxonomy-{タクソノミー}-{キーワード}.php
形式で名前を付けることで、任意のカスタムタクソノミーのテンプレートを作成することができます。詳しくは、WordPressテンプレート階層チートシート(初心者向け)をご覧ください。
タクソノミー・テンプレート・ファイルを作成したら、テーマのarchive.phpテンプレート・コードをコピー&ペーストしてください。
しかし、それでは非常に一般的です。タクソノミーページに特化した方がいいかもしれない。
例えば、タクソノミーのタイトルを別の場所に表示したり、タクソノミーのRSSフィードへのリンクを追加したりすることができます。また、タクソノミーの説明を表示したり、投稿数を表示したりすることもできます。
ということで、WordPressでタクソノミー関連のデータを取得し、WordPressテーマに表示する方法を見ていきましょう。
WordPressでタクソノミーのタイトルやURLなどを表示する
タクソノミー関連のデータをすべて表示するには、どのタクソノミーページが表示されているかを動的に把握し、その特定のタクソノミーキーワードに必要なデータをすべて取得する必要があります。
まず、タクソノミー・テンプレートに以下のコードをコピー&ペーストする必要があります:
<?php $term = get_queried_object(); ?>
これは、現在いるページに基づいて現在のタクソノミーの情報を取得します。
例えば、「ビジネス」というカテゴリーページにいた場合、そのタクソノミー・タームの情報を取得する。
このコードの後に、タクソノミーのタイトルやその他の情報をこのように表示することができます:
echo $term->name; // will show the name
echo $term->taxonomy; // will show the taxonomy
echo $term->slug; // will show taxonomy slug
以下の値のいずれかを使って同じことができる:
- タームID
- 名称
- スラッグ
- 用語グループ
- term_taxonomy_id
- タクソノミー
- 説明
- 親
- カウント
- フィルター
- メタ情報
実際の例を見てみましょう。テスト用の子テーマでは、キーワードのタイトル、タクソノミー名、投稿記事数、用語の説明を表示したいと考えました。
このデータを表示するために以下のコードを使用した:
<?php $term = get_queried_object(); ?>
<h1 class="category-title"><?php echo $term->name; ?><span class="taxonomy-label"><?php echo $term->taxonomy; ?> (<?php echo $term->count; ?> articles)</span></h1>
<p class="category-description"><?php echo $term->description; ?></p>
CSSクラスをいくつか追加したので、カスタムCSSを追加してテキストのスタイルも設定できることがわかるだろう。
これがテストサイトでの様子だ:
WordPressタクソノミーのエキスパートガイド
WordPressテーマで現在のタクソノミーのタイトルやURLなどを表示する方法はお分かりいただけたと思いますが、WordPressのタクソノミーに関連する他のガイドもご覧ください:
- 用語集タクソノミー
- 用語集キーワード
- WordPressでカスタム投稿タイプやタクソノミーが必要なのはどんなとき?
- WordPressでカスタムタクソノミーを作成する方法
- WordPressのカテゴリーをカスタムタクソノミーに変換する方法
- WordPressのカスタムタクソノミーにカスタムメタフィールドを追加する方法
- WordPressでタクソノミー画像(カテゴリーアイコン)を追加する方法
- WordPressのサイドバーウィジェットにカスタムタクソノミーのキーワードを表示する方法
- 親タクソノミーのアーカイブページに子タクソノミーを表示する方法
- WordPress検索にAjaxタクソノミーフィルターを追加する方法
この投稿が、WordPressテーマで現在のタクソノミーのタイトルやURLなどを表示する方法を学ぶのにお役に立てば幸いです。また、WordPressテーマ開発者向けのチートシートや、WordPressページビルダープラグインのエキスパートが選ぶノーコードソリューションもご覧ください。
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Pete says
This works well too…
$queried_object = get_queried_object();
$this_tax = get_taxonomy( $queried_object->taxonomy );
echo $this_tax->labels->singular_name; //change this accordingly
WPBeginner Support says
Thank you for sharing this code as another option
管理者
Keyur says
Many thanks for this code – this helped me to resolve my problem for last one week. I was trying it myself but didn’t managed but using your code, I got it.
Thanks once again.
Aleksandar says
Thanks very much, i needed this for custom taxonomy in breadcrumbs.
sami says
What if we want to get Taxonomy -> Terms name/title outside the loop with wp Query on Page template? Plus how to get Taxonomy name/title with the same scenario.
Thanks
Kalle Pedersen says
Noob question here: where is the “archive page” in which I need to paste the above code? Have tried it in different pages, but to no avail
Abel says
archive.php file
sylee says
Thank you so much!
Nechemya K says
Hi.
I trying to build a website for movies.
I have a few post types like movies, tv, and more
And I have a few taxonomies like: directors. Stars. Year. And more.
How can I make taxonomy pages to show only the movies post type title in the page?
Because when I ask to show all post in this tax, all of the post from all types shown
Thanks for you help.
Editorial Staff says
The answer is here:
http://codex.wordpress.org/Class_Reference/WP_Query#Type_Parameters
管理者
Aaron says
The title and first paragraph promises directions on how to get the URL, yet I see no mention of how to do so in the article body.
Editorial Staff says
The second snippet of code shows just how to do that.
管理者
Pete says
I just use this inside the loop
Pete says
<?php single_tag_title(); ?>
Pete says
and this for the term/tag description
<?php $description = get_queried_object()->description; ?>
<?php echo $description; ?>
Pete says
This forum post might be useful too…
http://wordpress.org/support/topic/how-to-display-custom-taxonomy-tags-outside-the-loop
P.s. can wpbeginner please not have “Subscribe to WPBeginner Updates (Weekly Email)” ticked as default every time I post a comment, it’s very annoying, and a little unethical… thanks.
Saad says
You Made My Day I was looking for this for so long thank you guys very much :). it will really help me in building a new theme for my blog .
Frank Pereiro says
This is really, really nice.
I wish there was more post on taxonomies like this one.
Thank you very much for sharing
Editorial Staff says
We can definitely work on that
管理者