实现wordpress站内搜索结果页面URL伪静态的方法代码
在wordpress后台设置固定链接可以实现文章、分类、标签等页面的URL伪静态形式,但是wordpress站内搜索结果页面的URL依然是“http://域名/?s=关键字”的动态URL形式,部分WP博主觉得不符合SEO要求,希望把搜索结果页面的URL也实现“http://域名/search/关键词”的伪静态形式,实现方法也很简单,只需要通过在functions.php文件添加相关的函数代码即可。
在当前主题的functions.php文件第一行代码 <?php 下面添加以下代码:
1 2 3 4 5 6 7 | function tongleer_search_url_rewrite() { if ( is_search() && ! empty( $_GET['s'] ) ) { wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) ); exit(); } } add_action( 'template_redirect', 'tongleer_search_url_rewrite' ); |
保存文件即可。
附方法二:通过在.htaccess文件添加伪静态规则也可以实现,把下面的代码添加到网站根目录的.htaccess文件(对支持.htaccess的主机有效)
1 2 | RewriteCond %{QUERY_STRING} \\?s=([^&]+) [NC] RewriteRule ^$ /search/%1/? [NC,R,L] |
演示效果:请点击博客吧右上角的搜索图标,输入关键词进行搜索。
除非注明,文章均由 博客吧 整理发布,欢迎转载。
转载请注明本文地址:https://www.boke8.net/wordpress-search-page-url-permalink.html
如果喜欢,可以:点此订阅本站
网友留言:
rg
更改后显示不出搜索结果怎么办
你好,我按第一种 方法是都 是原样。 http:// 域名 /?s=广州
但在域名上加上 就可以 http:// 域名 /search/广州 。。。是不是出了什么问题?
测试正常
我指,使用插件 cos-html-cache,后按你方法一去做, 结果是没有, 就是停在第一页不动
搜索框 输入 广州 后 地址栏显示 http:// 域名 /?s=广州 是停在第一页没有搜索结果 就是没有反应
但是如果直接在网址栏输入http: / 域名 //search/广州 就可以出现结果 相关的html页面
因为不能搜索静态页面, 所以 现在你见到的网页 我是已经停了cos-html-cache 插件 ,把archives目录里的文件都删除了。
上面的代码没有基于缓存情况下测试过,如果你使用缓存插件无效,那就说明不支持缓存的站点!
不错,收藏了,应该有用
阿华
点击搜索后 出现乱码?
xxx.net/search/%25E6%25AF%258F%25E5%25A4%25A9/ 成这样的 搜不出内容….