我到处寻找这个,但似乎什么也找不到。
我正在尝试筛选一些结果,当我创建这样的args数组并将其传递给query\\u post时,我注意到生成的SQL使用and而不是OR作为“class\\u 1\\u days”值。我想做一个比OR更好的。我该怎么做呢?(我在序列化数据时使用LIKE there,否则我会尝试“IN”并传递一个数组。正确的方法是什么?
$args = array(
\'taxonomy\' => \'courses\',
\'term\' => \'drawing\',
\'post_type\' => \'school\',
\'paged\' => $paged,
\'meta_query\' =>
#$checkbox_array,
array(
array(
\'key\' => \'instructor\',
\'value\' => \'1128\',
\'compare\' => \'LIKE\',
),
array(
\'key\' => \'class_1_days\',
\'value\' => \'Friday\',
\'compare\' => \'LIKE\',
),
array(
\'key\' => \'class_1_days\',
\'value\' => \'Saturday\',
\'compare\' => \'LIKE\',
),
)
);
这是在我注意到和的地方生成的相关SQL[138] => Array
(
[0] => SELECT SQL_CALC_FOUND_ROWS wp_posts.ID FROM wp_posts INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) 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) WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (18) ) AND wp_posts.post_type = \'school\' AND (wp_posts.post_status = \'publish\' OR wp_posts.post_status = \'private\') AND ( (wp_postmeta.meta_key = \'instructor\' AND CAST(wp_postmeta.meta_value AS CHAR) LIKE \'%1128%\')
AND (mt1.meta_key = \'class_1_days\' AND CAST(mt1.meta_value AS CHAR) LIKE \'%Friday%\')
AND (mt2.meta_key = \'class_1_days\' AND CAST(mt2.meta_value AS CHAR) LIKE \'%Saturday%\') ) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 5