- ベストアンサー
WordPressでのカテゴリー表示の条件分岐
- WordPressでカスタム投稿のカテゴリー表示方法に関する質問です。
- 子カテゴリーが選択されている場合のみ、その子カテゴリーを表示する方法を探しています。
- 選択がない場合は親カテゴリーを表示する条件分岐の実装が必要です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
WordPressのカテゴリーの表示方法について、お困りのようですね。 子カテゴリーの選択がある場合には、子カテゴリーのみを表示し、選択がない場合には親カテゴリーを表示したいとのことですね。 現在のコードでは、子カテゴリーのみ表示されているとのことですが、ここからどのように分岐すればよいのか、ご心配ですね。 解決方法としては、以下のように条件分岐を追加することで実現できます。 <ul> <?php $terms = get_the_terms( $post->ID, '〇〇-cat' ); if ( $terms && !is_wp_error( $terms ) ) { foreach( $terms as $term ) { // 子カテゴリーが選択されている場合は子カテゴリーのみ表示 if ( $term->parent ) { echo '<li>' . $term->name . '</li>'; } } // 子カテゴリーが選択されていない場合は親カテゴリーを表示 if ( empty( $term->parent ) ) { foreach( $terms as $term ) { echo '<li>' . $term->name . '</li>'; } } } ?> </ul> 上記のコードでは、まず$termsにget_the_terms()関数で取得したカテゴリーデータを代入します。 そして、$termsが存在し、エラーではない場合に条件分岐を行います。 foreachループで$termsをループし、$term->parentが存在する場合は子カテゴリーのみ表示します。 存在しない場合は、親カテゴリーを表示します。 このようにコードを修正することで、子カテゴリーのみ選択されている場合には子カテゴリーのみ表示し、選択がない場合には親カテゴリーを表示することができます。 お使いのWordPressに合わせてコードを修正し、試してみてください。 それでは、問題が解決することを願っています。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/
補足
お世話になっております。 上記コード試しましたが、子カテゴリーも選択している場合、重複して表示されます。 何が問題でしょうか? お手数お掛けしますが、ご回答いただけると幸いです。