サポート » 使い方全般 » カテゴリーページでサブカテゴリー名は表示、配下の記事は非表示

  • 通常、カテゴリーページを開くと、そのカテゴリーページに直接、属する記事一覧と、配下にあるサブカテゴリーに属する記事一覧の両方が表示されます。

    (例)
    「乗り物カテゴリー」
    ・記事1(乗り物カテゴリー内)
    ・記事2(乗り物カテゴリー内)
    ・記事3(乗り物カテゴリー配下の飛行機カテゴリー内)
    ・記事4(乗り物カテゴリー配下の飛行機カテゴリー内)
    ・記事5(乗り物カテゴリー配下のバイクカテゴリー内)
    ・記事6(乗り物カテゴリー配下のバイクカテゴリー内)

    これを、サブカテゴリーに属する記事は表示せずに、サブカテゴリー名のみを表示したいと考えています。

    (例)
    「乗り物カテゴリー」
    ・記事1(乗り物カテゴリー内)
    ・記事2(乗り物カテゴリー内)
    ・飛行機カテゴリー
    ・バイクカテゴリー

    サブカテゴリー名を表示させるために、

    <?php
    $query ='child_of='.get_query_var('cat').'&show_count=0&show_option_none=&title_li=&depth=1&hide_empty =1';
    wp_list_categories($query);
    ?>

    としました。

    次に、サブカテゴリー配下の記事を非表示にするために、functions.phpに、

    <?php
    function my_category_children( $return ) {
      return array();
    }
    add_filter( 'pre_option_category_children', 'my_category_children' );
    ?>

    としました。

    すると、サブカテゴリー配下の記事は非表示になりましたが、サブカテゴリーの表示もできなくなってしまいました。

    どうすればよいでしょうか?

    ちなみに、カテゴリーによっては、サブカテゴリーを持たないものもあります。

    以上、ご助言をお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • Category Archive page(category.php)での使用を想定しています。
    他にもやり方はいろいろあると思います。

    $my_targetCat = get_query_var('cat');
    // 現在リクエストされているカテゴリーの子カテゴリーの情報が配列で返ってきますので、
    // 後はお好きに表示・処理する感じで。
    $my_targetCat_childs = get_categories( array('child_of'=>$my_targetCat) );
    
    // category__andで、現在リクエストされているカテゴリーに属する記事のみを取得
    query_posts( array('category__and'=>array($my_targetCat)) );

    トピック投稿者 wakatake1983

    (@wakatake1983)

    ueさん、ありがとうございます。

    「Category Archive page(category.php)での使用」ということは、category.phpに書き込んでいくということでしょうか?
    wp-includes/category.phpや、wp-content/themes/twentyten/category.php、twentyeleven/category.phpなどがありますが、どれのどこに書き込んだらいいのでしょうか?
    私は「メインインデックスのテンプレートindex.php」への書き込みを想定していましたが。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カテゴリーページでサブカテゴリー名は表示、配下の記事は非表示」には新たに返信することはできません。