「親投稿は投稿数から除外したい」は具体的に何なのかわからないので、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が編集しました。
gblsmさん、ありがとうございます。
やはり当該フックではカテゴリーの除外しかできなさそうですね。
親投稿と考えるから通常の使い方と異なるのですが、単純にIDを指定した投稿をカウントに含めたくないと考えれば変ではないと思いました。
何か良いアイデアがあれば教えください。
wp_dropdown_categories() が出力するカウント(投稿数)は、この関数を呼び出したときに集計されるのではなく、カテゴリー毎に予め記録されているカウント値そのまま・・・だったと思います。get_category() が返すカテゴリー(オブジェクト)の count もそれで、集計されるのは投稿にカテゴリーを付けたり外したりした時と思います。もし違っていたらごめんなさい。
ですので、上記の「countを集計する処理」に手を入れるか、それとも自分で集計(wp_dropdown_categories に相当するコードを自作)するか、でしょうね。
gblsmさん、ありがとうございます。
現状はウィジェットでは難しそうなのでget_postsを二回実行して、最初ので親投稿に相当する投稿IDを取得して、二回目でそのIDを除外して取得した配列をカウントして数を表示しています。
これの方が簡単なのかもしれませんね…
ループを続けて使うのは無駄な負荷になりそうにおもいますが、他の方法も思い付かないのでこの方法で片付けます。
ありがとうございました。