我需要在args[\'s\']和args[\'meta\\u query\']之间创建“OR”关系。当我定义
“relation”=>“OR”在数组列表中,它仍然生成与和相关的sql。
下面是代码段
if( isset($_GET[\'resume_search_keyword\']) && $_GET[\'resume_search_keyword\'] != \'\' ) :
$resume_args[\'s\'] = $_GET[\'resume_search_keyword\'];
endif;
$resume_search_skills = array(
\'key\' => \'_resume_skills\',
\'value\' => $_GET[\'resume_search_keyword\'],
\'compare\' => \'LIKE\'
);
$resume_search_job_duties = array(
\'key\' => \'_resume_job_duties\',
\'value\' => $_GET[\'resume_search_keyword\'],
\'compare\' => \'LIKE\'
);
$resume_args[\'meta_query\'] = array(
\'relation\' => "OR",
$resume_search_job_duties,
$resume_search_skills
);
$resumes = new WP_Query($resume_args);
为其生成的sql如下所示
SELECT SQL_CALC_FOUND_ROWS
wp_posts.ID
FROM
wp_posts
INNER JOIN
wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id)
WHERE
1 = 1
AND (((wp_posts.post_title LIKE \'%teaching%\')
OR (wp_posts.post_excerpt LIKE \'%teaching%\')
OR (wp_posts.post_content LIKE \'%teaching%\')))
AND ((wp_postmeta.meta_key = \'_resume_job_duties\'
AND wp_postmeta.meta_value LIKE \'%teaching%\')
OR (wp_postmeta.meta_key = \'_resume_skills\'
AND wp_postmeta.meta_value LIKE \'%teaching%\'))
AND wp_posts.post_type = \'resume\'
AND (wp_posts.post_status = \'publish\'
OR wp_posts.post_author = 3
AND wp_posts.post_status = \'private\')
我要找的是
SELECT SQL_CALC_FOUND_ROWS
wp_posts.ID
FROM
wp_posts
INNER JOIN
wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id)
WHERE
1 = 1
AND (((wp_posts.post_title LIKE \'%teaching%\')
OR (wp_posts.post_excerpt LIKE \'%teaching%\')
OR (wp_posts.post_content LIKE \'%teaching%\')))
**OR** ((wp_postmeta.meta_key = \'_resume_job_duties\'
AND wp_postmeta.meta_value LIKE \'%teaching%\')
OR (wp_postmeta.meta_key = \'_resume_skills\'
AND wp_postmeta.meta_value LIKE \'%teaching%\'))
AND wp_posts.post_type = \'resume\'
AND (wp_posts.post_status = \'publish\'
OR wp_posts.post_author = 3
AND wp_posts.post_status = \'private\')
有人能帮我一下吗?我哪里做错了?