Intereting Posts
Скрыть / показать содержимое, начиная с середины абзаца Обновление post_content каждый раз, когда пользовательский пост открывается в бэкэнд создайте настраиваемое поле выпадающего списка с «городом» в нем Определение количества запросов, выполняемых ключевым wordpress Ключ comment_email, похоже, не работает для поля редактора комментариев Кто является самым надежным разработчиком плагинов? WP_Query Сортировка сообщений по месяцам … эффект временной шкалы Как назначить настраиваемый шаблон сообщения своим пользовательским правилам таксономии Не можете найти плагины в меню для wordpress 3.2? включая ошибку пути библиотеки Zend Gdata Как я могу проверить, почему комментарий не работает? Показывать поля профиля buddypress в многопользовательском блоге Добавить размер изображения для избранного изображения с адаптивным дизайном WP_Comment_Query с 5 комментариями верхнего уровня на страницу? Список авторов сайта со ссылкой и gravatar

meta_key и meta_value не работают вместе

Я пытаюсь отфильтровать цикл, чтобы найти сообщения, у которых есть meta_key с определенным meta_value . Я посмотрел на Codex, и я пробовал следующее без везения:

 // No results $args = array( 'post_type' => 'cqpp_interventions', 'posts_per_page' => '-1', 'meta_query' => array( 'relation' => 'OR', array( 'meta_key' => 'priority', /* Tried this too 'meta_value' => '80', 'compare' => '=' */ 'meta_value' => array('80'), 'compare' => 'IN' ) ) ); // No results $args = array( 'post_type' => 'cqpp_interventions', 'posts_per_page' => '-1', 'meta_key' => 'priority', 'meta_value' => 80 ); // This list me all cqpp_interventions and I can confirm that I have some with meta_value set to 80 $args = array( 'post_type' => 'cqpp_interventions', 'posts_per_page' => '-1', 'meta_key' => 'priority' ); $cqpp_posts = get_posts( $args ); 

Вот как я проверяю внутри цикла:

 $priority = get_post_meta( get_the_ID(), 'priority'); echo '<pre>'; var_dump($priority); echo '</pre>'; 

что приводит к:

 search.php:16: array (size=1) 0 => array (size=1) 0 => string '80' (length=2) search.php:16: array (size=1) 0 => array (size=2) 0 => string '80' (length=2) 1 => string '91' (length=2) 

Что я могу сделать, чтобы исправить это?

Из ссылки на ваши первые $ args

 $args = array( 'post_type' => 'cqpp_interventions', 'posts_per_page' => '-1', 'meta_query' => array( 'relation' => 'OR', array( 'meta_key' => 'priority', /* Tried this too 'meta_value' => '80', 'compare' => '=' */ 'meta_value' => array('80'), 'compare' => 'IN' ) ) ); 

Вы добавили 'relation' => 'OR' , который не нужен. relation нужно добавить, если у вас есть несколько метаданных, которые нужно запросить. Также сравнивать не нужно, если вы хотите получить определенное значение, так как по умолчанию используется = .

Обновленные $ args будут

 $args = array( 'post_type' => 'cqpp_interventions', 'posts_per_page' => '-1', 'meta_query' => array( array( 'meta_key' => 'priority', 'meta_value' => '80', // since 80 is string ) ) ); // try either of below. $myPost = new WP_Query( $args ); // fetch post and managed in objects $myPost = get_posts( $args ); // fetch post and store in array 

Надеюсь, это поможет вам.

благодаря

Вы можете попробовать следующее:

 $args = array( 'post_type' => 'cqpp_interventions', 'posts_per_page' => '-1', 'meta_query' => array( array( 'key' => 'priority', 'value' => '80' ) ) ); 

Реальная проблема с вашим запросом заключается в том, что вы передаете meta_key и meta_value . Однако массивы в вашем аргументе meta_query должны иметь key и value ключей.

Это также будет работать:

 'key' => 'priority', 'value' => array('80')