###1.実現させたいこと
WordPressのカスタム投稿でカテゴリーを作る際≪Taxonomy≫の理解が必要になってきます。
例えば、カスタム投稿(news)で以下の5つのカテゴリー分け≪Term≫があったことを想定しています。
- 種類A
- 種類B
- 種類C
- 種類D
- 種類E
カスタム投稿(news)の一覧記事である≪archive≫に、この≪Term≫をリンク付きで反映させたいと考えています。
- 「タイトル」
- 「日付」
- 「カテゴリー」※この場合は≪Term≫にあたると思います。
- 「抜粋記事」
###2.該当のソースコード
「各termを<div>で囲む」という条件があったので、以下のコードを記載しました。
PHP
1if ($terms = get_the_terms($post->ID, 'news')) { 2 foreach ($terms as $term) { 3 $term-slug = $term->slug; 4 echo ('<div class="Div_term-"'); 5 echo esc_html($term-slug); 6 echo ('">'); 7 echo get_the_term_list($post->ID, 'news'); 8 echo ('</div>'); 9 } 10}
なんとか上手く反映したのですが、実はこれは完全なコードではありません。
次の条件でも意図したようにするにはどうすればいいのでしょうか?
###2.発生している問題
「1つの投稿記事で複数のカテゴリー≪Term≫を選んだ状態でも反映させるには?」
実は、記載しているコードは1つのカテゴリー≪Term≫を選んでいる場合は問題なく反映します。
しかし、複数例えば2つのカテゴリー≪Term≫を選んでいる場合は次のようになってしまいます。
種類A種類B種類A種類B
つまり、 **種類A種類B ** を1つとカウントして2つ選んでいるためループが起こり、同じことを繰り返します。
これを**種類A種類B ** だけを正しいリンクが反映している表示させることはできないでしょうか?
###4.試してみたこと
WordPressの関数で以下の2つがあります。
get_the_term()
get_the_term_link()
get_the_term()
を使って、一覧を作ることができるのですが、リンクを貼ることがうまくできません。
一方、get_the_term_link()
だとリンクが反映した状態で一覧を反映させることができます。
しかし、各Termを<div>タグで囲むことができません。
###5.補足情報
私が意図している疑問点が正しく伝わっているか少し不安です。
なんとか、全体像を理解していただけるように説明したつもりですが、いかがでしょうか?
もし、アドバイスをいただけるのであればありがたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/25 23:48