web-dev-qa-db-ja.com

特定のterm_metaの投稿を数える

私は多くの分類法を持つカスタム投稿タイプがあります。フロントエンドでは、ユーザーは分類に「カテゴリ」(term_meta)の値(ハードウェアまたはソフトウェア)を割り当てることができます。

Term_metaの投稿がいくつあったかを数えられるようにしたいと思いました。

 $base_array        = array(
    'posts_per_page'    => -1,
    'fields'            => 'ids',
    'post_type'         => 'cpt',
    'post_status'       => array('publish'),
    'date_query'        => array(
            'before'    => 'next Saturday',
            'after'     => 'last Monday'
    )
);

$base = get_posts($base_array);

echo count($base);

これは私にその週の総投稿数を教えてくれます。しかし、term_metaの「ハードウェア」または「ソフトウェア」で分類されている投稿を数えたいと思います。

それは可能ですか?

1

だから、私が持っている他のいくつかのコードを見て、私はこれがそれに取り組むための正しい方法だろうと思います。私はそれをテストしていませんが、それは私がそれを必要としている方法でもうまくいくだろうと感じます(もはやタイプを数える必要はありません)。

$base_array = array(
    'posts_per_page'    => -1,
    'fields'            => 'ids',
    'post_type'         => 'cpt',
    'post_status'       => array('publish'),
    'date_query'        => array(
        'before'    => 'next Saturday',
        'after'     => 'last Monday'
    )
);

$base = get_posts($base_array);


foreach( $base as $post_id ) {
    $term_meta = get_term_meta( post_id, 'tax_term_type', true );

    $term_hardware += ($term_meta == 'term_meta_hardware') ? 1 : 0;
    $term_software += ($term_meta == 'term_meta_software') ? 1 : 0;
}

echo count( $term_hardware );
echo count( $term_software );
1
$base_array        = array(
    'posts_per_page'    => -1,
    'fields'            => 'ids',
    'post_type'         => 'cpt',
    'post_status'       => array('publish'),
    'date_query'        => array(
            'before'    => 'next Saturday',
            'after'     => 'last Monday'
    ),
    'tax_query'        => array(
            'taxonomy'  => 'pas_here_taxonomy'
            'field'    => 'slug',
            'terms'    => array( 'hardware', 'software'),
'operator'      => 'IN'
    )
);

$base = get_posts($base_array);

echo count($base);
2
BlueSuiter