Запрос MySQL с помощью значений метаданных WordPress

У меня есть несколько сообщений WordPress с несколькими значениями meta …

введите описание изображения здесь

Я пытаюсь написать запрос, который найдет все сообщения с значениями X …

$customkey1 = 'Type of Vehicle'; $customvalue1 = $_POST['OPT1']; $customkey1 = 'Network'; $customvalue1 = $_POST['OPT2']; $my_posts = $wpdb->get_results(" SELECT * FROM $wpdb->posts, $wpdb->postmeta WHERE ID = $wpdb->postmeta.post_id AND meta_key = '$customkey' AND meta_value = '$customvalue' AND meta_key = '$customkey1' AND meta_value = '$customvalue1' AND $wpdb->posts.post_status = 'publish' ORDER BY post_date DESC "); 

Я думаю, что, когда я ошибаюсь, я говорю: «WHERE meta_key» равно 1, но тогда я говорю, если он равен другому, мне нужно увидеть, является ли какой-либо из мета-ключей одинаковым, это имеет смысл?

благодаря


SELECT * FROM $ wpdb-> сообщения в виде сообщений, $ wpdb-> postmeta as postmeta1, $ wpdb-> postmeta as postmeta2 (и многое другое ....)
ГДЕ
posts.ID = postmeta1.post_id
posts.ID = postmeta2.post_id
(и более....)
И postmeta1.meta_key = '$ customkey'
AND postmeta1.meta_value = '$ customvalue'
И postmeta2.meta_key = '$ customkey1'
AND postmeta2.meta_value = '$ customvalue1'
(и более....)
И $ wpdb-> posts.post_status = 'publish'
ORDER BY post_date DESC

загляните в get_pages (). это функция, предоставляемая wordpress http://codex.wordpress.org/Function_Reference/get_pages

 $pages = get_pages(array( 'meta_key' => $customkey, 'meta_value' => $customvalue )); 

Но я не уверен, что вы можете передать более одного meta_key

Чтобы получить значения пользовательского поля, используйте

 $value1 = get_post_meta($post->ID, 'Type of Vehicle', true); $value2 = get_post_meta($post->ID, 'Network ', true); 

Тогда в другом месте скрипта вы можете повторить значение $ value1 и $ value2

И вы можете добавить столько, сколько хотите, например

 $value1 = get_post_meta($post->ID, 'Custom Field Name 1', true); $value2 = get_post_meta($post->ID, 'Custom Field Name 2 ', true); $value3 = get_post_meta($post->ID, 'Custom Field Name 3 ', true); $value4 = get_post_meta($post->ID, 'Custom Field Name 4 ', true); $value5 = get_post_meta($post->ID, 'Custom Field Name 5 ', true); 

И так далее, где пользовательское имя поля, вам нужно будет ввести имя пользовательского поля.

Нет, это не имеет смысла, когда вы используете AND, если обе переменные будут когда-либо разными. Вы просите, чтобы это были две вещи одновременно, чего, очевидно, не может быть. Он будет возвращать данные только в том случае, если это существовало и было значением как $ customkey1, так и $ customkey. Но вы должны проверить их на PHP, прежде чем беспокоиться о его запросе.

Возможно, вы имели в виду ИЛИ или хотели бы посмотреть инструкции LIKE.