web-dev-qa-db-ja.com

カスタムメタを持つ投稿の数だけを表示するようにget_terms()をフックする方法

これは私が持っているものです:

投稿の有効期限を格納する投稿に追加されたカスタムメタ値を持つカスタム投稿タイプ。投稿がこの有効期限を過ぎると、サイトに表示されなくなります。

これは動作しますが、カスタム投稿タイプの用語を一覧表示するために次のようなものを使用しています。

$termcats = get_terms('dcategory', 'hide_empty=0&orderby=name&pad_counts=1');

表示されている用語で投稿数を表示していますが、ここでの問題は投稿が期限切れかどうかに関係なくすべての投稿を表示することです。そのため、たとえば、私はtestという名前の投稿が1つあり、その投稿は期限切れです。上記のコードは1つの投稿があることを示していますが、ユーザーがカテゴリをクリックすると空白のリストが表示されます。

だから私はメタ値の私の日付フィールドに従って期限切れになった投稿を無視するためにget_terms()にフックする方法が必要です。

3
Brady

私が覚えている限りでは用語のカウントはデータベースに格納されているので、あなたがそれらを取得したときに変更するものは何もありません - あなたは単に既製の番号を取得します。

そのため、カウント用の特別なロジックを完全に別々に実装して維持するか、ネイティブカウントを再計算して修正する必要があります。wp_update_term_count_now()を参照してください。

2
Rarst