在帖子标题和自定义字段中搜索

时间:2013-04-28 作者:Mike

我想使用搜索表单来搜索单词,但仅限于搜索帖子标题和自定义字段(在我的案例中称为“城市”)。我该怎么做?

谢谢

1 个回复
SO网友:birgire

下面是一个使用posts_clauses 过滤器:

function search_posts_clauses($clauses, $query){
    if(!is_admin() && $query->is_main_query() && $query->is_search()){
        global $wpdb;

        // replace post_content with meta_key and meta_value:
        $searchterms = explode(" ",get_query_var("s"));
        foreach($searchterms as $searchterm){
             $from = sprintf("{$wpdb->posts}.post_content LIKE \'%%%s%%\'", $searchterm);
             $to = sprintf("{$wpdb->postmeta}.meta_key = \'cities\' AND {$wpdb->postmeta}.meta_value = \'%s\' ", $searchterm);  
             $clauses["where"] = str_replace($from, $to, $clauses["where"]);
        }

        $clauses["join"] = "INNER JOIN {$wpdb->postmeta} ON ({$wpdb->posts}.ID = {$wpdb->postmeta}.post_id) ";
    }
    return $clauses;
}
add_filter( \'posts_clauses\', \'search_posts_clauses\', 10, 2 );
我们在其中修改wherejoin 主搜索查询的部件。

结束

相关推荐

Filter and Search

我正在我的网站上工作,这是一个基于WordPress的网站。这是一个winprizesonline的抽奖网站。com是我最受启发的网站。现在,我想在我的网站上进行类似该网站的动态搜索,但我不知道如何以及在何处添加代码。就像这里;http://www.winprizesonline.com/new/contests/ 您可以看到3个搜索框,排序方式:,条目:,下一条:我想要相同的搜索框,具有相同的过滤和搜索功能。任何人都知道它的代码,可以告诉我在我的网站上放在哪里。我正在为我的网站使用DirectoryPr