get_pages Не принимать мой запрос

Я надеюсь, что кто-то, возможно, сможет указать на мою ошибку. У меня есть функция в functions.php с простой meta_query.

Если я использую этот запрос.

$args = array( 'meta_query' => array( array( 'meta_key' => 'Partner_Level', 'meta_value' => 'Gold', 'post_type' => 'page', 'post_status' => 'publish' ))); $pages = get_pages($args); foreach ( $pages as $page ) { $option = '<option value="' . get_page_link( $page->ID ) . '">'; $option .= $page->post_title; $option .= '</option>'; echo $option; } 

Я извлекаю каждую страницу на своем сайте, а не те, которые соответствуют аргументам $ args, переданным в get_pages ();

Если я упрощу $ args

 $args = array( 'meta_key' => 'Partner_Level', 'meta_value' => 'Gold', 'post_type' => 'page', 'post_status' => 'publish' ); 

Тогда я не получаю никаких результатов вообще.

Так что это действительно все или ничего, из того, что я вижу, мой запрос выглядит хорошо, но я знаю, что я что-то пропускаю, но что ….? Оцените любую помощь с этим.

Я выполнил инструкцию SQL и Im смог получить ожидаемые результаты с помощью.

 $querydetails = " SELECT wposts.* FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = 'Partner_Level' AND wpostmeta.meta_value = 'Gold' AND wposts.post_status = 'publish' AND wposts.post_type = 'page' ORDER BY wposts.post_date DESC "; 

Поэтому мое предположение – это что-то с get_pages (), не слушая мои $ args.

Заранее спасибо.

Solutions Collecting From Web of "get_pages Не принимать мой запрос"

Я поднял пни на этом подходе и вернулся к своей первоначальной функции. Он просматривает сообщения, ищет переданный ему уровень партнера, а затем извлекает список страниц. Затем я показываю список стилей с миниатюрами сообщений в качестве ссылки с возможностью клика. Необходимо будет настроить для достижения желаемого уровня доступности, но это будет позже. Я ценю ваши комментарии к этому вопросу.

Для справок:

 function the_partners($cpLevel) { global $wpdb; $querydetails = " SELECT wposts.* FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta WHERE wposts.ID = wpostmeta.post_id AND wpostmeta.meta_key = 'Partner_Level' AND wpostmeta.meta_value = '$cpLevel' AND wposts.post_status = 'publish' AND wposts.post_type = 'page' ORDER BY wposts.post_title ASC "; $pageposts = $wpdb->get_results($querydetails, OBJECT); echo "<ul class=\"logobox clearfix\">"; foreach ( $pageposts as $page ) { $option = '<li>'; $option .= '<a href="' . get_page_link( $page->ID ) . '">' . get_the_post_thumbnail( $page->ID ) . '</a>'; $option .= '</li>'; echo $option; } echo "</ul>"; 

}

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

Как это:

 $args = array( 'post_type' => 'page', 'post_status' => 'publish', 'meta_query' => array( array( 'key' => 'Partner_Level', 'value' => 'Gold' ) ) ); 

Дайте мне знать, если это работает. Вам также нужно будет использовать соответствующий мета-сопоставление .

Вы также должны указать тип сравнения. Попробуй это:

 $args = array( 'post_type' => 'page', 'post_status' => 'publish', 'meta_query' => array( array( 'key' => 'Partner_Level', 'value' => 'Gold', 'compare' => 'LIKE' ) ) );