如何將此查詢用作我的自定義搜索查詢?posts_search中的自定義查詢
add_filter('posts_search', 'my_search_is_perfect', 20, 2);
function my_search_is_perfect($search, $wp_query)
{
$sWord = 'Zukunft haus';
return "
SELECT *,
MATCH(post_title) AGAINST('$sWord' IN BOOLEAN MODE) AS Score
FROM `wp_posts`
INNER JOIN wp_term_relationships ON wp_term_relationships.object_id = ID
AND wp_term_relationships.term_taxonomy_id = 1
WHERE MATCH(post_title) AGAINST ('$sWord' IN BOOLEAN MODE)
AND `post_status` = 'publish'
AND `post_type` = 'post'
ORDER BY score DESC
";
}
查詢是正確的(我在phpMyAdmin檢查這一點),但在WordPress我得到的消息,沒有結果。
你究竟在做什麼? – rnevius
過濾器posts_search將只接受WHERE Clausels的過濾器使用情況始終檢查覈心文件:https://github.com/WordPress/WordPress/blob/master/wp-includes/query.php#L2701 –
要執行原始查詢,可能最好直接使用'$ wpdb' global。在WP文檔中有關於它的完整參考:https://codex.wordpress.org/Class_Reference/wpdb –