wordpress文章分页怎么设置伪静态链接

 我来答
yangjinlong76
活跃答主

2016-03-06 · 非职业答题人
知道顶级答主
回答量:5.7万
采纳率:94%
帮助的人:1.7亿
展开全部
1:wordpress开始设置url伪静态方法

后台:设置->固定链接,然后如图设置后保存,此项设置后,发现文章链接都是伪静态了,以为大功告成。但不久后就发现问题。

2:遇到问题显示的结果

1:如果简单的在自定链接后面加上 .html单页面文章显示是正常的

2:如果是文章页有很多分页的话,就会出下下面的情况

3:查找问题所在

看到这种链接,执笔人实在是受不了。于是各种百度谷歌,最后无果。
想到模板分页调用的函数 wp_link_pages,于是从此函数下手,很快有了结果。
原来每生成一个链接都会调用一个钩子 wp_link_pages_link来方便定制,最后所有链接生成完后再调用一个钩子 wp_link_pages来个总链接大定制。
最后锁定了一个函数 redirect_canonical,该函数触发同名钩子

4:wordpress成功实现伪静态方法

最终决定一试。在当前主题的functions.php文件中加入代码:

//设置伪静态开始
//解析url的钩子
add_filter('post_rewrite_rules', 'add_custom_post_rewrite_rules');
function add_custom_post_rewrite_rules($rules) {
$custom_rules = array('(d+)_(d+).html$' => 'index.php?p=$matches[1]&page=$matches[2]',);
$rules = array_merge($custom_rules, $rules);
return $rules;
}
//设置url钩子
add_filter('wp_link_pages_link', 'post_custom_rewrite_url');
function post_custom_rewrite_url($output){

$preg = "/(.*)/(d+).html/(d)/";
$output = preg_replace($preg, "$1/$2_$3.html", $output);
return $output;
}

//不许跳转
add_filter( 'redirect_canonical', 'post_custom_redirect_url');
function post_custom_redirect_url($output){
return false;
}
//设置伪静态结束

5:最后一步大功告成

上面的设置保存后,再返回后台:设置->固定链接,然后不需要设置什么,就点一下“保存更改”即可,这时你浏览发现文章链接都是伪静态了。
以转载于其它博客,测试4.0版本是可以正常使用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式