当前位置:秋叶网络博客 WP教程 ◊ WordPress自定义类型的文章链接结构变换

WordPress自定义类型的文章链接结构变换

作者:秋叶 发表时间:2014年12月14日

wordpress自定义类型文章相信很少人会用到,但并不是没有人会用到,比如说秋叶网络博客的说说页面,其实就是一种自定义类型文章的展示页面,但长期写说说以来,秋叶发现一个很严重的现象,那就是这种文章类型的网址结构居然不遵从wordpress的固定链接设置,而是使用默认的http://www.mizuiren.com/shuoshuo/%postname%这种结构,当你的文章标题是“秋叶”的时候,那么它的网址就是http://www.mizuiren.com/shuoshuo/秋叶,这种链接很不利于用户体验,特别是当文章网址很长的时候,比如说“新版WordPress出现canonical问题的修复方法”,则它的链接是http://www.mizuiren.com/新版WordPress出现canonical问题的修复方法,放到浏览器上就成了http://www.mizuiren.com/%E6%96%B0%E7%89%88WordPress%E5%87%BA%E7%8E%B0canonical%E9%97%AE%E9%A2%98%E7%9A%84%E4%BF%AE%E5%A4%8D%E6%96%B9%E6%B3%95,仔细数了一下总长度为139个字符数,虽说这种动态链接对百度搜索引擎无太大影响,但是长度会影响的,特别对增加了网页冗余代码贡献了一份不可估量的力量。解决这类方法就是把这种链接转变为http://www.mizuiren.com/123.html的格式或者http://www.mizuiren.com/123的格式,具体做法为:在主题中的functions.php里面添加:

//设置说说固定链接结构为 ID.html
add_filter('post_type_link', 'custom_book_link', 1, 3);
function custom_book_link( $link, $post = 0 ){
if ( $post->post_type == 'shuoshuo' ){
return home_url( 'shuoshuo/qiuye-'. $post->ID .'.html' );
} else {return $link;}}
add_action( 'init', 'custom_book_rewrites_init' );
function custom_book_rewrites_init(){
add_rewrite_rule(
'shuoshuo/qiuye-([0-9]+)?.html$',
'index.php?post_type=shuoshuo&p=$matches[1]',
'top' );}

以上提供的链接格式为:http://www.mizuiren.com/qiuye-ID.html,注意把红色部分替换成自己的文章类型,有的人可能不止一种新增的文章类型,需要变换多种文章类型的链接结构,那后面有备用方法,同样在该文件中添加:

$mytypes = array(//根据需要添加你的自定义文章类型
'type1' => 'slug1',
'type2' => 'slug2',
'type3' => 'slug3'
);
add_filter('post_type_link', 'my_custom_post_type_link', 1, 3);
function my_custom_post_type_link( $link, $post = 0 ){
global $mytypes;
if ( in_array( $post->post_type,array_keys($mytypes) ) ){
return home_url( $mytypes[$post->post_type].'/' . $post->ID .'.html' );
} else {return $link;}}
add_action( 'init', 'my_custom_post_type_rewrites_init' );
function my_custom_post_type_rewrites_init(){
global $mytypes;
foreach( $mytypes as $k => $v ) {
add_rewrite_rule(
$v.'/([0-9]+)?.html$',
'index.php?post_type='.$k.'&p=$matches[1]','top' );}}

至于这种自定义类型文章比如说说怎么添加大家可以参考文章:纯代码给wordpress增加说说/微博/微语功能

目录: WP教程 | 标签: , | 7727次阅读