我在wordpress中写了一个搜索查询,它搜索'post_title','post_content'&'meta_query'。而不是使用WP_Query Search的参数,我可以使用WP_Query的'post'&'meta_query'的相关参数与'OR'结合使搜索查询匹配'post_title'和'post_content'只传递WP_Query的相关参数?或者是有办法与WPDB $手动编写查询象下面这样:如何在没有WP_Query的情况下搜索帖子的'title','content'和'meta_query'?
global $wpdb;
$query= "SELECT wp_dxwe_posts.* FROM `wp_posts` WHERE
(wp_posts.post_status IN ('$status_array') AND
wp_posts.post_type='messages') AND
(wp_posts.post_title LIKE '%$keyword%' OR wp_posts.post_content
LIKE '%$keyword%') AND (wp_postmeta.meta_key == 'my_meta_key' AND
wp_postmeta.meta_value LIKE '%$keyword%') ";
$my_query = $wpdb->get_results($query);
任何一个可以请告诉我怎么样?提前致谢。
我得到了下面的MySQL结果查询:
SELECT * FROM `wp_dxwe_posts` wp
INNER JOIN `wp_dxwe_postmeta` wm ON (wm.`post_id` = wp.`ID`)
WHERE wp.`post_status` IN ('publish,pending,draft')
AND wp.`post_type`='messages'
AND (wp.`post_title` LIKE '%prasad%' OR
wp.`post_content` LIKE '%prasad%')
AND wm.`meta_key` = 'inistitute_name'
AND wm.`meta_value` LIKE '%some_institute_name%'
您的自定义查询将作品......你面对什么问题? –
@Happy编码,首先,感谢您的快速回复。当我在PhpMyAdmin中运行该查询时,它给了我错误,如“#1054 - 'where子句'中的未知列'wp_postmeta.meta_key'” –
您必须指出*意味着什么不起作用*。现在有什么问题,你有新的SQL结果查询? –