WordPress搜索关键词高亮两种方法

WordPress搜索关键词高亮两种方法

作者 : 资源客 发布时间: 2019-12-4

wordpress 搜索关键词高亮显示是一个非常实用的技巧,将搜索结果中的关键词高亮标出使用户一目了然,十分有利于用户体验。

方法一

把以下代码加入 WordPress 主题目录下的搜索模板文件(一般是 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); 
}?>

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

<?php echo $title; ?>

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

<?php echo $content;?>

应该是很简单的。代码加入 search.php 之后应该就会有效果。记住要把这些代码放在一个循环中。不要把主代码放在 search.php 中,而下面的显示标题和内容的代码放在引入的列表文件。

方法二

实现高亮显示 WordPress 搜索关键词的方法有多种,有的是在搜索页面中修改,有的需要在 header 中修改,这里介绍一个比较简单实用的方法,将以下代码添加到主题目录的 functions.php 中即可,显示的样式还可以自定义:

function search_word_replace($buffer){
    if(is_search()){
        $arr = explode(" ", get_search_query());
        $arr = array_unique($arr);
        foreach($arr as $v)
            if($v)
                $buffer = preg_replace("/(".$v.")/i", "<span style=\"background-color:#ff0;\"><strong>$1</strong></span>", $buffer);
    }
    return $buffer;
}
add_filter("the_title", "search_word_replace", 200);
add_filter("the_excerpt", "search_word_replace", 200);
add_filter("the_content", "search_word_replace", 200);

 

http://xzh.i3geek.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请不要用于商业用途及非法用途,否则后果自负!
3. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"qq301.com",如遇到无法解压的请联系管理员!
资源客是一个优秀的分享资源站,本站资源均为各位友友分享而来,特殊原创会标明如有侵犯版权等可联系删除

资源客 » WordPress搜索关键词高亮两种方法