Wordpress-запрос с несколькими мета-значениями в качестве условия - PullRequest
0 голосов
/ 13 июля 2011

В первый раз, используя WordPress запрос, поэтому не знаете, как решить эту проблему. Я хочу получить заголовки постов, где meta_key - это «tag», а meta_values ​​- «A, B, C». Нечто похожее на функцию IN () SQL-запроса. Как мне сделать, чтобы достичь этого?

Это мой код, но он не работает, так как игнорирует условие.

 //$tags consists of my meta_value ( A, B, and C) 
    foreach ($tags as $input) {


    $data[] = array( 'meta_key' => 'tag', 'meta_value' => $input, 'orderby' => 'post_date' ); 


    }




        $query = new WP_Query( $data );

Заранее благодарим за помощь.

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

Прочитайте раздел «Параметры пользовательских полей» в Кодексе WordPress для WP_Query .

Проблема в том, что вы перестраиваете весь свой массив $data в каждом цикле.Это передает недопустимые параметры в WP_Query.Поэтому я представляю, что вы получаете неопределенные результаты.

Вы просто хотите установить meta_value напрямую или указать параметр meta_query, аналогичный описанному выше предложению IN.

1 голос
/ 13 июля 2011

Вот ответ:

$args = array(

    'meta_query' => array(
    array(
        'key' => 'tag',
        'value' => $tags,
        'compare' => 'IN'
        ) 
    ),

    'orderby' => 'post_date'    

);

...