我在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結果查詢? –