在wordpress中: 我只需要搜索类别名称而不是内容。
例如:
第1篇(类别狗) "我是一只狗而不是一只猫"
Post 2(类别Cat) "我是一只猫而不是一只狗"
搜索查询"狗"将仅显示post1(而不是包含该单词Dog的post2)
(解决方案可以是代码或某些Wordpress搜索插件)
答案 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');