计算具有元值的帖子

Count posts with meta value

我正在尝试显示当前用户具有特定 meta key values 的帖子数。

这是我的代码:

    $args = array(
    'posts_per_page'    => -1,
    'post_type'         => 'post',
    'post_status'       => 'publish',
    'author'            => $current_user_id,
    'meta_query'        => array(
           'key'        => 'color',
           'value'      => array('red', 'blue')
    ),
);
$posts_array = get_posts( $args );
$the_count = count($posts_array);

echo $the_count;

Thi 正在计算当前用户的 ALL 个帖子,忽略 meta key values.

我只需要 $the_count 为当前用户具有 meta key value 'red''blue' 的帖子数。

我做错了什么?

提前致谢!

我不确定,但您可以尝试这样的操作:

$args = array(
    'posts_per_page'    => -1,
    'post_type'         => 'post',
    'post_status'       => 'publish',
    'author'            => $current_user_id,
    'meta_key'          => 'color',
    'meta_value'        => array('red', 'blue')
);

$posts_query = new WP_Query($args);
$the_count = $posts_query->post_count;

echo $the_count;

如果你想使用meta_query数组,你必须将meta_keymeta_value放在一个子数组中:

$args = array(
    'posts_per_page'    => -1,
    'post_type'         => 'post',
    'post_status'       => 'publish',
    'author'            => $current_user_id,
    'meta_query'        => array(
        array(
           'key'        => 'color',
           'value'      => array('red', 'blue'),
        ),
    ),
);
$posts_array = get_posts( $args );
$the_count = count($posts_array);

这是因为您可以使用多个 meta_key 来组合它们。

    'meta_query'        => array(
        'relation' => 'AND',
        array(
           'key'        => 'color',
           'value'      => array('red', 'blue'),
        ),
        array(
           'key'        => 'size',
           'value'      => array('l', 'xl', 'xxl'),
        ),
    ),