Wordpress类别搜索

时间:2017-10-26 07:46:47

标签: wordpress search

在wordpress中: 我只需要搜索类别名称而不是内容。

例如:

第1篇(类别狗) "我是一只狗而不是一只猫"

Post 2(类别Cat) "我是一只猫而不是一只狗"

搜索查询"狗"将仅显示post1(而不是包含该单词Dog的post2)

(解决方案可以是代码或某些Wordpress搜索插件)

1 个答案:

答案 0 :(得分:1)

如果你需要独立的搜索脚本来使用某些功能,那么你需要一个这样的解决方案

$search_query='dog';$allcats=array();
$terms = get_terms( 'category', array('hide_empty' => false));
foreach ($terms as $key => $value) {
    if (strpos($value->name,$search_query)!==false) $allcats[]=$value->term_id;
}

$foundposts=get_posts(array("post_type"=>"post","category__in"=>$allcats));
foreach ($foundposts as $key => $value) {
    echo $value->title.'<br>';
}

但是,如果您要更改全局搜索结果,则需要更改pre_get_posts规则。 例如,

function onlycatsearch ($query) {
if ($query->is_search and is_admin() and !empty($_GET["s"])) {

$search_query=get_search_query();
$allcats=array();
$terms = get_terms( 'category', array('hide_empty' => false));
foreach ($terms as $key => $value) {
    if (strpos($value->name,$search_query)!==false) $allcats[]=$value->term_id;
}

$query->set('s', "");
$query->set('category__in', $allcats);
}

}

add_action('pre_get_posts','onlycatsearch');