搜索结果页面按页面标题筛选

时间:2019-06-26 作者:sihamxxi

如何编辑嵌入在OceanWP主题中的搜索结果页面,以便标题与我在搜索栏中输入的单词相似的页面首先显示或至少突出显示?

1 个回复
最合适的回答,由SO网友:ChristopherJones 整理而成

虽然我认为您正在寻找一个插件,但我认为这个答案可能会帮助一些搜索类似答案的人。如果您有权访问您的功能。php文件,您可以轻松实现这一点。

首先,我们将更改orderby 搜索查询的参数,以便按页面标题对其进行筛选。这是我测试过的一个片段,它将改变您的搜索结果页面,并按标题升序排列。

//Filter the search by title for posts
function filter_search_by_title($query){
    if($query->is_search() && $query->is_main_query()){
      $query->set(\'post_type\', array(\'post\'));
      $query->set(\'orderby\', \'title\');
      $query->set(\'order\', \'ASC\');
  }
  return $query;
}

add_action(\'pre_get_posts\', \'filter_search_by_title\');
接下来,关于突出显示,这里有一篇文章将通过the_excerptthe_title ,并将添加<strong> 围绕搜索的字符串的每个实例。很明显,你可以把它改成任何你喜欢的样式。

function highlight_search_results($content){
     if(is_search()){
       $search_string = get_query_var(\'s\');
       $keys = explode(" ",$search_string);
       $content = preg_replace(\'/(\'.implode(\'|\', $keys) .\')/iu\', \'<strong class="highligh-search">\'.$search_string.\'</strong>\', $content);
     }
     return $content;
}
add_filter(\'the_excerpt\', \'highlight_search_results\');
add_filter(\'the_title\', \'highlight_search_results\');
希望有帮助!!

相关推荐

Testing Plugins for Multisite

我最近发布了一个WordPress插件,它在单个站点上非常有效。我被告知该插件在多站点安装上不能正常工作,我理解其中的一些原因。我已经更新了代码,现在需要一种方法来测试更新后的代码,然后才能转到实时客户的多站点安装。我有一个用于测试的WordPress安装程序的单站点安装,但需要在多站点安装上进行测试。根据我所能找到的唯一方法是在网络上至少有两个站点来安装整个多站点安装,以测试我的插件。设置WordPress的整个多站点安装是插件开发人员的唯一/首选方式,还是有更快的测试环境可用。