WordPress搜索结果中增加关键词高亮显示代码

WordPress 欲思 4评论

在多梦网络的博客上看到了这个效果代码,所以就拿过来试了一下,感觉还不错。有需要的朋友也可以试试看。

把以下代码加入WordPress主题目录下的搜索模板文件(一般是search.php)中的主循环中

<?php
$title = get_the_title();
//300是摘要字符数,......是结束符号。
$content = mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 300,"......"); 
$keys = explode(" ",$s);
$title = preg_replace('/('.implode('|', $keys) .')/iu','<strong style="color:#953b39;">\0</strong>',$title);
$content = preg_replace('/('.implode('|', $keys) .')/iu','<strong style="color:#953b39;">\0</strong>',$content); 
?>

WordPress搜索结果中增加关键词高亮显示代码

然后在需要显示标题的地方使用以下代码显示

<?php echo $title; ?>

在需要显示摘要的地方使用以下代码

<?php echo $content;?>

应该是很简单的。代码加入search.php之后应该就会有效果。记住要把这些代码放在一个循环中。

不要把主代码放在search.php中,而下面的显示标题和内容的代码放在引入的列表文件。

补充:使用过程中关键字后面加空格搜索出现乱码。换以下代码:

<?php
$s = trim(get_search_query()) ? trim(get_search_query()) : 0;
$title = get_the_title();
//300是摘要字符数,......是结束符号。
$content = mb_strimwidth(strip_tags(apply_filters('the_content', $post->post_content)), 0, 300,"......"); 
if($s){$keys = explode(" ",$s); 
$title = preg_replace('/('.implode('|', $keys) .')/iu','<strong style="color: #953b39;">\0</strong>',$title); 
$content = preg_replace('/('.implode('|', $keys) .')/iu','<strong style="color: #953b39;">\0</strong>',$content); 
}?>

转载请注明:欲思博客 » WordPress搜索结果中增加关键词高亮显示代码

如果你觉得这篇文章或者我分享的主题对你有帮助,请支持我继续更新网站和主题 !捐赠本站
喜欢 (3)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(4)个小伙伴在吐槽
  1. 弄好了 == 谢了
    Pete2014-07-23 15:37 回复
    • 不客气。域名看起来不错。
      欲思2014-07-23 15:40 回复
      • 不过我发现一些文章没有用..
        Pete2014-07-23 22:53 回复
        • 不会饿。只要能匹配到都有用的。
          欲思2014-07-23 23:08 回复