陈忠岩个人博客-一个生活在这个现实社会的小角色在讲述他的故事!

当前位置:首页 - 代码 - 正文

君子好学,自强不息!

170222_wordpress.jpg

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

实现的方法很简单,只需要将以下代码加入到当前主题下的 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://www.chenzhongyan.com/">

  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://www.chenzhongyan.com/">

  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://www.chenzhongyan.com/"+value+"/");

  10.     return false;

  11. }

  12. </script>


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

如此,就实现了 WordPress 默认站内搜索的伪静态化。很明显,这个方法适合任何 WordPress 主题。



本文来源:陈忠岩个人博客

本文地址:http://www.chenzhongyan.com/Code/76.html

关注我们:微信搜索“chen_zhongyan”添加我为好友

版权声明:如无特别注明,转载请注明本文地址!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。


你好,朋友
真是美好的一天!
    最新文章 | 随机文章 | 热评文章
  • 陈忠岩个人博客
  • 巴彦生活网
  • 好DJ舞曲网
  • 订阅本站的 RSS 2.0 新闻聚合