实现WordPress默认站内搜索伪静态化的方法

转载 张戈博客  2017年11月05日 18:13:56  阅读 73 次

何为 WordPress 站内搜索伪静态?众所周知,WordPress 默认搜索地址为 http://www.domain.com/?s=keyword ,这是一个动态地址,和全站伪静态有点格格不入,而且还不利于静态缓存。所以我们很有必要把 WordPress 站内搜索变成伪静态。

实现WordPress默认站内搜索伪静态化的方法 技术文档 第1张

实现的方法很简单,只需要将以下代码加入到当前主题下的 functions.php 文件当中即可:

  1. //默认搜索伪静态
  2. function wp_search_url_rewrite() {
  3.     if ( is_search() && ! emptyempty$_GET['s'] ) ) {
  4.         wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) . "/");
  5.         exit();
  6.     }
  7. }
  8. add_action( 'template_redirect', 'wp_search_url_rewrite' );

现在去前台搜索,就会发现结果会跳转到【/search/关键词】了。当然,如果动手能力强的话,我们为了让搜索直接进入这个页面,而不是要301跳转,我们可以稍微改造一下这个搜索框。

常规搜索框代码一般如下:

  1. <div id="searchbar">
  2.     <form method="get" id="searchform" action="http://zhangge.net/">
  3.         <input type="text" name="s" id="s" placeholder="输入搜索内容" />
  4.         <button type="submit" id="searchsubmit">搜索</button>
  5.     </form>
  6. </div>

输入内容,点击搜索后就必然会跳到 ?s=keyword 这个动态页面。所以,我们需要通过 js 代码来拦截这搜索动作,然后重新定义跳转地址,将代码如下修改即可:

  1. <div id="searchbar"> <form method="get" id="searchform" action="http://zhangge.net/search/">
  2.     <input name="s" id="s" placeholder="请输入搜索内容" onkeydown="if(event.keyCode==13){return Searcher('wp');}">
  3.     <button type="submit" id="searchsubmit" onclick="return Search('wp');">搜索</button>
  4. </form>
  5. </div>
  6. <script type="text/javascript">
  7. function Search(){
  8.     var value=$("# s ").val()||"";
  9.     window.open("http://zhangge.net/search/"+value+"/");
  10.     return false;
  11. }
  12. </script>

很简单的代码,原理就是给【搜索】动作绑定了一个 js 函数,而这个 js 函数的功能就是获取当前输入的关键词,并拼接成一个新的地址,最后跳转过去即可。

如此,就实现了 WordPress 默认站内搜索的伪静态化。很明显,这个方法适合任何 WordPress 主题。如果想让 WordPress 集成多种站内搜索,比如百度、360嵌入式搜索,请移步阅读本文完整版本——《WordPress集成多种站内搜索、百度嵌入式搜索,并伪静态化的方法》。

如果文章对你有帮助,请赞赏支持懿古今发展!

历史上的今天:

本文地址:https://yigujin.cn/1379.html
温馨提示:文章内容系作者个人观点,不代表懿古今对观点赞同或支持。
版权声明:本文为转载文章,来源于 张戈博客 ,版权归原作者所有,如有侵权请留言告知,谢谢合作!
淘宝天猫无门槛专享优惠券

发表评论


表情

  1. 野人摊影视分享
    野人摊影视分享 【主管】 @回复

    表示看完文章后,随即看下博主的搜索功能,发现已用上,这执行力可以阿

  2. 老鬼
    老鬼 【试用】 @回复

    之前做静态化处理的时候 就做了这个

  3. 我爱动感单车网
    我爱动感单车网 【副总】 @回复

    搜索结果页面,已经屏蔽了蜘蛛抓取,动态还是伪静态无所谓了。

  4. 明月登楼的博客
    明月登楼的博客 【副总】 @回复

    这个有啥用处呢?收录不需要收录这个吧?

  5. 九哥
    九哥 【主管】 @回复

    就喜欢干货,就喜欢折腾,有空折腾起。