wordpress搜索页伪静态,亲测可用

WP搜索页伪静态官方程序是不能设置的,电脑屋曾经有一个站想实现这个功能,但无奈网上搜来的一大堆基本是不可以用的,所以一气之下,自己研究写了一下

在WP里,add_rewrite_rule在很多网上的教程就讲的不是很清楚

首先,函数里第一个参数是伪静态的匹配规则,第二个才是动态的匹配规则,也就是原网站的,而不是你的模板已经生成的,比如/page/2/?s=搜索词这种,电脑屋小编在这里就走了很多弯路

好了,免费给大家把代码放出来,自己去测试一下吧!

将如下代码放到模板目录下的functions.php文件里的相应位置即可

function searchrewrite(){
add_rewrite_rule('^s-([^/^.^?]+)-(\d+).html','index.php?s=$matches[1]&paged=$matches[2]','top');
preg_match('#s-([^/^.^?]+)-(\d+).html#sU',$_SERVER['REQUEST_URI'],$searchuri);
if($searchuri)$_GET['s']=urldecode($searchuri[1]);
if(!$searchuri&&$_GET['s']){
$_GET['paged']? $searchpaged=$_GET['paged']:$searchpaged='1';
wp_redirect( home_url( "/s-$_GET[s]-$searchpaged.html" )  );exit();
}
}
add_action('init','searchrewrite');
本文链接:https://www.dnwfb.com/5787.html,转载请注明出处。
0

评论0

没有账号? 注册  忘记密码?