В том числе «cat» => $ cat breaks meta_query

поэтому у меня есть настраиваемый цикл, который, кажется, работает везде, кроме одного места.

$args = array( 'post_type' => 'post', 'meta_key' => 'wpcf-post-weight', 'orderby' => 'meta_value_num title', 'meta_query' => array( array( 'key' => 'wpcf-featured', 'value' => -1, ), array( 'key' => 'wpcf-news-expire-date', 'value' => $today, 'compare' => '>=', ), ), /*'cat'=> '8',*/ 'posts_per_page' => 1 ); $alertloop = new WP_Query( $args ); 

с комментарием cat => 8, запросы vars выглядят так:

 Array ( [post_type] => post [meta_key] => wpcf-post-weight [orderby] => meta_value_num title [meta_query] => Array ( [0] => Array ( [key] => wpcf-featured [value] => -1 ) [1] => Array ( [key] => wpcf-news-expire-date [value] => 1383047207 [compare] => >= ) ) [posts_per_page] => 1 [error] => [m] => [p] => 0 [post_parent] => 

Однако, как только я раскомментирую cat => 8, он отбрасывает первый meta_query.

 Array ( [post_type] => post [meta_key] => wpcf-post-weight [orderby] => meta_value_num title [meta_query] => Array ( [0] => Array ( [key] => wpcf-news-expire-date [value] => 1383046582 [compare] => >= ) ) [cat] => 8 [posts_per_page] => 1 [error] => [m] => 

Это в WordPress 3.7. Я не думаю, что это имеет значение, но я попробовал переупорядочить порядок $ args, все безрезультатно. Любое понимание было бы наиболее оценено. Спасибо.

Не знаю, почему это работает, когда другой запрос был неудачным. Я не уверен, что это ошибка, которую другие испытывают или нет. Каждый раз, когда я включал какой-либо категории «включительно» arg, он разбивал мой meta_query, но, похоже, я не «исключал» категории. Итак, … создание массива всех идентификаторов категорий, а затем снятие категорий, которые я хотел «включить» в запрос. Затем установите массив, поскольку, похоже, работает arg_not_in.

Я все равно буду любить любое представление о том, почему это происходит. Спасибо.

 $cats = get_all_category_ids(); $removeKeys = array(8,10,11,12); foreach($removeKeys as $key) { if (in_array($key, $cats)) { unset($cats[array_search($key, $cats)]); } } $args = array( 'post_type' => 'post', 'meta_query' => array( array( 'key' => 'wpcf-featured', 'value' => -1, ), array( 'key' => 'wpcf-news-expire-date', 'value' => $today,'compare' => '>=', ), ), 'category__not_in'=> $cats, 'posts_per_page' => 1 ); $alertloop = new WP_Query( $args );