サポート » 使い方全般 » ウィジェットのカテゴリーの投稿数について

  • 解決済 ogatatsu

    (@ogatatsu)


    こんにちは。
    ウィジェットにカテゴリーをドロップダウンで表示して、そこへ投稿数も表示しています。
    投稿に親子関係をもたせておりまして、親投稿は投稿数から除外したいのですが、いまいち方法が分かりません。
    widget_categories_dropdown_argsあたりでできるのかと試行錯誤しましたが上手くいきませんでした。
    ご助言頂ければ幸いです。
    どうぞ宜しくお願いします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • 「親投稿は投稿数から除外したい」は具体的に何なのかわからないので、widget_categories_dropdown_args が適しているかどうか判断が難しいです。
    Reference / Hooks / WP_Widget_Categories::widget / widget_categories_dropdown_args

    フィルター widget_categories_dropdown_args は関数 wp_dropdown_categories() へ渡すパラメータを返すので、ご希望の内容(何々を除外する)が例えば「特定のIDのカテゴリーをドロップダウンリストに表示しない」ということで良ければ、可能だと思います。

    add_filter( 'widget_categories_dropdown_args', 'my_wcda' );
    function my_wcda( $cat_args ) {
      $cat_args['exclude'][] = 26;	// 除外したいカテゴリーID
      return $cat_args;
    }
    
    • この返信は5年、 10ヶ月前にgblsmが編集しました。
    • この返信は5年、 10ヶ月前にgblsmが編集しました。
    トピック投稿者 ogatatsu

    (@ogatatsu)

    gblsmさん、ありがとうございます。
    やはり当該フックではカテゴリーの除外しかできなさそうですね。
    親投稿と考えるから通常の使い方と異なるのですが、単純にIDを指定した投稿をカウントに含めたくないと考えれば変ではないと思いました。
    何か良いアイデアがあれば教えください。

    wp_dropdown_categories() が出力するカウント(投稿数)は、この関数を呼び出したときに集計されるのではなく、カテゴリー毎に予め記録されているカウント値そのまま・・・だったと思います。get_category() が返すカテゴリー(オブジェクト)の count もそれで、集計されるのは投稿にカテゴリーを付けたり外したりした時と思います。もし違っていたらごめんなさい。

    ですので、上記の「countを集計する処理」に手を入れるか、それとも自分で集計(wp_dropdown_categories に相当するコードを自作)するか、でしょうね。

    トピック投稿者 ogatatsu

    (@ogatatsu)

    gblsmさん、ありがとうございます。
    現状はウィジェットでは難しそうなのでget_postsを二回実行して、最初ので親投稿に相当する投稿IDを取得して、二回目でそのIDを除外して取得した配列をカウントして数を表示しています。
    これの方が簡単なのかもしれませんね…

    トピック投稿者 ogatatsu

    (@ogatatsu)

    ループを続けて使うのは無駄な負荷になりそうにおもいますが、他の方法も思い付かないのでこの方法で片付けます。
    ありがとうございました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「ウィジェットのカテゴリーの投稿数について」には新たに返信することはできません。