如题所述
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版本是可以正常使用。
后台:设置->固定链接,然后如图设置后保存,此项设置后,发现文章链接都是伪静态了,以为大功告成。但不久后就发现问题。
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版本是可以正常使用。
温馨提示:答案为网友推荐,仅供参考