最后更新时间为 2018年9月21日
最近一直在考虑给我的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()方法判断是否有指定key
if(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搜索直达功能代码 | 我系张先森