如何通过jQuery高亮搜索关键词

高亮搜索关键词是一种有效优化 WordPress 搜索结果页面的方法,我在网络上看到了一些实现这个功能的方法,但是我没找到一种同时高亮标题和文章内容的方法,今天我将带给你这种在 WordPress 博客的搜索结果页面上同时高亮标题和内容的技巧。

修改

1.复制粘贴以下代码到你的 functions.php 文件

function hls_set_query() {
  $query  = attribute_escape(get_search_query());
 
  if(strlen($query) > 0){
    echo '
      <script type="text/javascript">
        var hls_query  = "'.$query.'";
      </script>
    ';
  }
}
 
function hls_init_jquery() {
  wp_enqueue_script('jquery');
}
 
add_action('init', 'hls_init_jquery');
add_action('wp_print_scripts', 'hls_set_query');

2.复制粘贴一下代码到你当前主题的 header.php 文件 (在</header> 标签前)

 <style type="text/css" media="screen">
    .hls { background: #D3E18A; }
  </style>
  <script type="text/javascript">
  jQuery.fn.extend({
    highlight: function(search, insensitive, hls_class){
      var regex = new RegExp("(<[^>]*>)|(\\b"+ search.replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1") +")", insensitive ? "ig" : "g");
      return this.html(this.html().replace(regex, function(a, b, c){
        return (a.charAt(0) == "<") ? a : "<strong class=\""+ hls_class +"\">" + c + "</strong>";
      }));
    }
  });
  jQuery(document).ready(function($){
    if(typeof(hls_query) != 'undefined'){
      $("#post-area").highlight(hls_query, 1, "hls");
    }
  });
  </script>

3.非常重要: 接下来请确保改换”post-area”(第二步中)为你要显示高亮搜索结果的区域的 html ID 标签。

4.选项: 你同样可改变高亮显示的外观通过修改在第二步中“.hls” 标签的CSS样式。

完成效果

search_result

下面是一些我喜欢这种方法的原因:

1.jQuery 能高亮你希望 HTML 元素内的任何文字,不管此文字是在标题内还是在文章内容里,你只需改变需要的 ID 标签。

2.一些简单的搜索关键词高亮根本没必要使用任何插件,这种方法能让你在15分钟内修改完主题,使搜索结果页面更加友好。

3.能高度自定义

你有更好的解决方法么?请在评论中和我们分享。

原文地址:How to Highlight Search Terms with jQuery

中文翻译:如何通过jQuery高亮搜索关键词

此篇文章由 housne 发表于 2009年5月27日,点击此处发表评论,或者订阅本文

« »

4 Comments»

  1. aisinvon 发表于 2009年5月29日

    学习

  2. 猪的明天 发表于 2009年5月31日

    额 有空了试下 嘿嘿~

  3. 新易网博客 发表于 2009年6月15日

    不错,学习了.

  4. 流年观影 发表于 2009年7月8日

Leave a Reply

称呼//Name (必填)

邮箱//Email (必填)

网站//website (选填)