サポート » 使い方全般 » 子カテに記事がなくても子カテゴリー名と説明文を表示させたい

  • 解決済 shinkichi

    (@shinkichi)


    親カテに属する子カテなら、子カテゴリー名と説明文を表示させたい。
    記事一覧を表示させたいわけではないので、子カテゴリーに記事がないものも表示させたい。
    ということを実現したいと思い下記ソースを書きました。

    ●fanctions.php(コーデックスを参考にしています)

    function post_is_in_descendant_category( $cats, $_post = null )
    {
      foreach ( (array) $cats as $cat ) {
        // get_term_children() accepts integer ID only
        $descendants = get_term_children( (int) $cat, 'category');
        if ( $descendants && in_category( $descendants, $_post ) )
          return true;
      }
      return false;
    }

    ●category.php

    <?php if ( post_is_in_descendant_category( get_term_by( 'slug', '親カテスラッグ名', 'category' ))): ?>
      ××××××
    <?php elese: ?>
     ●●●●●●
    <?php endif; ?>

    これで実現は出来たものの、子カテゴリーに記事がないものが表示されず…
    「get_term_by」を「get_terms」でしてみたりとかやってみたですがだめでした。

    ダミーの記事を作ってしまえばすぐに解決するのですが、
    どうもそれはスッキリしないなと思い試行錯誤していたのですが、
    限界にいたり投稿させていただきました。

    お分かりの方がいらっしゃいましたら、ご教授いただければ幸いです。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    下記のコードではどうでしょうか。

    <?php
    if ( ( $parent = get_term_by( 'slug', '親カテゴリのスラッグ名', 'category' ) ) && 
    	( $children = get_term_children( $parent->term_id, 'category' ) ) &&
    	in_array( $cat, $children ) ):
    ?>
    	子カテゴリです。
    <?php else: ?>
    	子カテゴリではありません。
    <?php endif; ?>

    ご回答ありがとうございました。
    提示いただいたソースで、思い通りの表示が出来ました。
    functionのデータも不要になり、勉強にもなりました。
    ホントにホントにありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。