我的函数中有以下代码。php文件
function __adapted_search_function($search, $query) {
if(is_admin() || !$query->is_main_query() || !$query->is_search)
return; //determine if we are modifying the right query
global $wpdb;
$search_term = $query->get(\'s\');
$search = \' AND (\';
//point 1
$search .= "($wpdb->posts.post_title LIKE \'%$search_term%\')";
//need to add an OR between search conditions
$search .= " OR ";
//point 2
$search .= "($wpdb->posts.post_excerpt LIKE \'%$search_term%\')";
//need to add an OR between search conditions
$search .= " OR ";
//point 3
$search .= "($wpdb->postmeta.meta_key = \'mcb-product\' AND $wpdb->postmeta.meta_value LIKE \'%$search_term%\')";
//add the filter to join, sql will error out without joining the tables to the query
add_filter(\'posts_join\', \'__custom_join_tables\');
return $search . \') \';
}
function __custom_join_tables($joins) {
global $wpdb;
$joins = "JOIN $wpdb->postmeta ON ($wpdb->postmeta.post_ID = $wpdb->posts.ID)";
return $joins;
}
我希望它只搜索帖子标题、摘录和单个自定义字段。如果我删除了连接,但确实需要将其包括在内,那么它会起作用,有人能看到我哪里出错了吗?