WordPress WP_Query где предложение с OR?

Привет друзья, это мои аргументы для WP_Query.

$args = array('post_type' => 'job_listing'); $args['meta_query']=array( 'relation' => 'OR', array( 'key' => 'app_trailer-type', 'value' => $job_tailor, 'compare' => 'LIKE' ), array( 'key' => 'app_pay-type', 'value' => $app_pay_type, 'compare' => 'LIKE' ), array( 'key' => 'geo_address', 'value' => $geo_address, 'compare' => 'LIKE' ), array( 'key' => 'geo_country', 'value' => $geo_country, 'compare' => 'LIKE' ), array( 'key' => 'geo_short_address', 'value' => $geo_short_address, 'compare' => 'LIKE' ), ); 

это запрос возврата как.

 SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) INNER JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id) INNER JOIN wp_postmeta AS mt2 ON (wp_posts.ID = mt2.post_id) INNER JOIN wp_postmeta AS mt3 ON (wp_posts.ID = mt3.post_id) INNER JOIN wp_postmeta AS mt4 ON (wp_posts.ID = mt4.post_id) WHERE 1=1 AND wp_posts.post_type = 'job_listing' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'expired' OR wp_posts.post_status = 'tr_pending' OR wp_posts.post_status = 'tr_failed' OR wp_posts.post_status = 'tr_completed' OR wp_posts.post_status = 'tr_activated' OR wp_posts.post_status = 'private') AND ( (wp_postmeta.meta_key = 'app_trailer-type' AND CAST(wp_postmeta.meta_value AS CHAR) LIKE '%Flatbed%') AND (mt1.meta_key = 'app_pay-type' AND CAST(mt1.meta_value AS CHAR) LIKE '%Per Week%') AND (mt2.meta_key = 'geo_address' AND CAST(mt2.meta_value AS CHAR) LIKE '%Davenport%') AND (mt3.meta_key = 'geo_country' AND CAST(mt3.meta_value AS CHAR) LIKE '%United States%') AND (mt4.meta_key = 'geo_short_address' AND CAST(mt4.meta_value AS CHAR) LIKE '%Davenport%') ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10 

Мне нужен запрос, например.

 SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id) INNER JOIN wp_postmeta AS mt1 ON (wp_posts.ID = mt1.post_id) INNER JOIN wp_postmeta AS mt2 ON (wp_posts.ID = mt2.post_id) INNER JOIN wp_postmeta AS mt3 ON (wp_posts.ID = mt3.post_id) INNER JOIN wp_postmeta AS mt4 ON (wp_posts.ID = mt4.post_id) WHERE 1=1 AND wp_posts.post_type = 'job_listing' AND (wp_posts.post_status = 'publish' OR wp_posts.post_status = 'expired' OR wp_posts.post_status = 'tr_pending' OR wp_posts.post_status = 'tr_failed' OR wp_posts.post_status = 'tr_completed' OR wp_posts.post_status = 'tr_activated' OR wp_posts.post_status = 'private') AND ( (wp_postmeta.meta_key = 'app_trailer-type' OR CAST(wp_postmeta.meta_value AS CHAR) LIKE '%Flatbed%') OR (mt1.meta_key = 'app_pay-type' AND CAST(mt1.meta_value AS CHAR) LIKE '%Per Week%') OR (mt2.meta_key = 'geo_address' AND CAST(mt2.meta_value AS CHAR) LIKE '%Davenport%') OR (mt3.meta_key = 'geo_country' AND CAST(mt3.meta_value AS CHAR) LIKE '%United States%') OR (mt4.meta_key = 'geo_short_address' AND CAST(mt4.meta_value AS CHAR) LIKE '%Davenport%') ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 10 

пожалуйста помоги.

изменил args с подобным.

 $args = array('post_type' => 'job_listing', 'relation' => 'OR'); $args['meta_query']=array( array( 'key' => 'app_trailer-type', 'value' => $job_tailor, 'compare' => 'LIKE' ), array( 'key' => 'app_pay-type', 'value' => $app_pay_type, 'compare' => 'LIKE' ), array( 'key' => 'geo_address', 'value' => $geo_address, 'compare' => 'LIKE' ), array( 'key' => 'geo_country', 'value' => $geo_country, 'compare' => 'LIKE' ), array( 'key' => 'geo_short_address', 'value' => $geo_short_address, 'compare' => 'LIKE' ), ); 

Для массива аргументов OR Query должно быть примерно так:

 $args = array( 'post_type' => 'post', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'app_trailer-type', 'value' => $job_tailor, 'compare' => 'LIKE' ), array( 'key' => 'app_pay-type', 'value' => $app_pay_type, 'compare' => 'LIKE' ), array( 'key' => 'geo_address', 'value' => $geo_address, 'compare' => 'LIKE' ), array( 'key' => 'geo_country', 'value' => $geo_country, 'compare' => 'LIKE' ), array( 'key' => 'geo_short_address', 'value' => $geo_short_address, 'compare' => 'LIKE' ), ) ); 

Ссылка: http://codex.wordpress.org/Class_Reference/WP_Query

Вы можете попробовать что-то вроде этого

 $args = array( 'post_type' => 'job_listing', 'meta_query' => array( 'relation' => 'OR', array( 'key' => 'app_trailer-type', 'value' => $job_tailor, 'compare' => 'LIKE' ), array( 'key' => 'app_pay-type', 'value' => $app_pay_type, 'compare' => 'LIKE' ), // .... ) ); 

Подробнее о Codex.

Из ссылки класса WP_Query ( ссылка ):

Важное примечание: tax_query принимает массив массивов массивов запросов налоговых запросов (он принимает массив массивов) – вы можете увидеть это во втором примере ниже. Эта конструкция позволяет запрашивать несколько таксономий, используя параметр отношения в первом (внешнем) массиве для описания логических отношений между запросами таксономии.

Вы должны добавить array('relation' => 'OR') в начало вашего массива meta_query.