最近一直在考虑给我的wordpress增加一个搜索直达功能,点击搜索如果该关键词匹配对应设定,则跳转到指定网页,如果不匹配则跳转搜索网页。具体怎么实现呢?可以前端也可以后端实现。
前端实现:
定义一个json对象,包含关键词和网址的对应关系,使用form的submit方法,在form提交前判断该json对象是否有和关键词一致的key,如果有则跳转指定网页。
jQuery(document).ready(function(){kw_url = {'百度1': 'http://www.baidu.com','网易1': 'http://www.163.com'};jQuery('.search-form').submit(function(){var query = jQuery('.search-field').val();//hasOwnProperty()方法判断是否有指定keyif(kw_url.hasOwnProperty(query)) {window.location.href = kw_url[query];//return false阻止提交表单return false;}});})
这里要注意:不同主题的search form的类名可能不一样,需要根据实际情况修改以上代码
后端实现:
获取提交的关键词,直接判断是否满足条件,然后header跳转;
get_search_query过滤器只有一个参数,string类型,值就是提交的搜索词。
add_filter('get_search_query','keywords_redirect');function keywords_redirect($query){$kw_urls = array('百度'=>'http://www.baidu.com','网易'=>'http://www.163.com');if(array_key_exists($query,$kw_urls)) header('Location: '.$kw_urls[$query]);return $query;}
不过以上代码功能还过于简单,仅限于精确匹配,容我睡一会儿,继续明日更新。
转载:wordpress搜索直达功能代码 | 我系张先森