0

特定のメタ キー値が存在する投稿の数を数えようとしています。この場合、値が「ソフト」のキー「テクスチャ」を持ち、「赤」であるキー「色」も持つ投稿です。青」または「緑」。

私のコードはエラーにはなりませんが、前述のメタ キー値を持つ投稿だけではなく、すべての投稿をカウントしているようです。

$args = array(
    'posts_per_page'    => -1,
    'post_type'         => 'post',
    'post_status'       => 'publish',
    'author'            => $current_user_id,
    'meta_query' => array(
       'key'   => 'texture',
       'value' => 'soft'
    ),
    array(
       'key'   => 'colours',
       'value' => array('red', 'blue', 'green')
    )
);

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

echo $the_count;

私は何を間違っていますか?

乾杯。

4

1 に答える 1

1

次のように複数の値を持つメタ配列に追加'relationship' => 'AND'meta_queryてみてください:'compare' => 'IN'('red', 'blue', 'green')

'meta_query' => array(
    'relationship' => 'AND',
    array(
        'key'   => 'texture',
        'value' => 'soft'
    ),
    array(
        'key'   => 'colours',
        'value' => array('red', 'blue', 'green'),
        'compare' => 'IN'
    )
)

Edit #1:

値の周りにマークを追加%すると問題が解決する可能性があります。それが機能するかどうかは100%確信が持てませんが、次のように試すことができます:

'meta_query' => array(
    'relationship' => 'AND',
    array(
        'key'   => 'texture',
        'value' => 'soft'
    ),
    array(
        'key'   => 'colours',
        'value' => array('%red%', '%blue%', '%green%'),
        'compare' => 'IN'
    )
)

うまくいくといいのですが、ありがとう..

于 2016-04-25T11:24:48.087 に答える