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

转载   张戈博客  2017-12-12 07:34:48  224 人阅读  41 条评论

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

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

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

  1. //默认搜索伪静态
  2. function wp_search_url_rewrite() {
  3.     if ( is_search() && ! empty$_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://zhangge.net/5062.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为转载文章,来源于 张戈博客 ,版权归原作者所有,欢迎分享本文,转载请保留出处!

 发表评论


  1. 鳄鱼皮包
    鳄鱼皮包 @回复

    学习了,怎么做伪静态

  2. 我爱动感单车网
    我爱动感单车网 @回复

    对这个,我不纠结,目前咋样就任其咋样吧!

  3. 闲鱼
    闲鱼 【秀才】 @回复

    喜欢折腾的可以试一试,像我这种又懒又没时间的就算了

  4. 阿江博客
    阿江博客 @回复

    这个方法太好了,看来做网站要学的地方还很多了

  5. 福利网
    福利网 【秀才】 @回复

    厉害了,值得学习!

  6. 橘子书
    橘子书 【举人】 @回复

    其实,很少人用搜索。

  7. 金选网赚博客
    金选网赚博客 【小白】 @回复

    多谢分享

  8. 电烤箱什么牌子好
    电烤箱什么牌子好 【举人】 @回复

    [挖鼻屎] 我统计不到我网站有多少人在用搜索。 [黑线]

  9. 贷款口子
    贷款口子 【书童】 @回复

    收藏了,不错啊

  10. 蜗牛体育导航
    蜗牛体育导航 @回复

    进来看一下怎么设置

  11. 姜辰
    姜辰 【秀才】 @回复

    搜索伪静态感觉没啥需要。另外百度站内搜索在SSL站点里不给力。

    • 懿古今
      懿古今【村长】2017-12-12 17:41  回复

      @姜辰百度站内搜索我都懒得变成二级域名了,直接链接到百度的搜索结果中,感觉还行,就是可能会造成跳出率高

  12. 加趣屋
    加趣屋 @回复

    我的站已经实现搜索伪静态了

  13. 电炖锅的那些事
    电炖锅的那些事 【书童】 @回复

    暂时不动了,不过还是感谢你提供的方法。
    争取经常来学习。

  14. 钟水洲博客
    钟水洲博客 【举人】 @回复

    站内搜索,静态有什么用

    • 懿古今
      懿古今【村长】2017-12-12 17:42  回复

      @钟水洲博客[偷笑] 反正我们都是设置搜索结果不收录,所以是否伪静态应该作用不大,纯粹就是折腾而已

  15. 狂放
    狂放 【进士】 @回复

    这个我就先不折腾了,我想把我的破主题搜索按钮改成a链接,这样的话就可以预加载了

    • 懿古今
      懿古今【村长】2017-12-12 17:44  回复

      @狂放[赞] 按钮变A标签?是不是点击搜索就直接跳到搜索页面然后再进行搜索?十分期待

      • 狂放
        狂放 【进士】2017-12-12 19:41  回复

        @懿古今emmm typecho已经有人搞了,其实就是兼容pajx搜索没刷新(纯装逼)

  16. 里维斯社
    里维斯社 【举人】 @回复

    我来看看 [呵呵]

  17. 小白seo博客
    小白seo博客 【小白】 @回复

    来学习了

  18. 90客栈
    90客栈 【进士】 @回复

    先学习一下,后面用wordpress

  19. 玉满斋
    玉满斋 @回复

    代码用上了,但是搜索就500错误! [呵呵]

    • 懿古今
      懿古今【村长】2017-12-12 17:45  回复

      @玉满斋张戈博客也是用begin主题,我移植到本站也正常,弄到你那个站点应该没难度

  20. 明月登楼
    明月登楼 【尚书】 @回复

    这个感觉意义不大吧!一般这种搜索链接搜索引擎也不收录吧!

  21. 值品分享
    值品分享 @回复

    emptyempty( $_GET[‘s’] ) ) 这里多了个empty。

  22. 99八十一
    99八十一 【举人】 @回复

    这要不说,还真没注意到这个。

  23. 龙笑天
    龙笑天 【秀才】 @回复

    百度和360收录太少,不然就直接用他们的站内搜索了~

    • 懿古今
      懿古今【村长】2017-12-12 17:46  回复

      @龙笑天升级到HTTPS之后,360就不想了。不过百度的搜索还行,我首页就是直接跳转到百度搜索,感觉还不错

  24. 小苍老师
    小苍老师 【举人】 @回复

    这法子不错,晚上试一试!

  25. 很文博客
    很文博客 【书童】 @回复

    不错,搜索也可以伪静态。

  26. 历史趣谈
    历史趣谈 【秀才】 @回复

    好方法,必须赞一个,wordpress因开放而精彩