WordPress自定义类型文章链接按理说在开发WordPress自定义类型的时候就设定好了,也就是说WordPress自定义类型文章链接用什么前缀链接在开发时请设置好但是后缀WordPress自定义类型文章链接同普通文章类型差不多,如果您的WordPress自定义类型文章标题是中文,那么链接也是中文这样对于SEO来说并不是很好的,虽然WordPress自定义类型文章链接也可以使用插件来设置WordPress自定义类型文章链接但是为了这么个小小的功能就不断安装插件会导致我们的WordPress运行效率减低,下面咱们用代码的方式来WordPress自定义类型文章链接。

WordPress自定义类型文章链接

单WordPress自定义类型文章链接用这个


add_filter('post_type_link', 'custom_bulletin_link', 1, 3);
function custom_bulletin_link( $link, $post = 0 ){
    if ( $post->post_type == 'bulletin' ){//注意里面bulletin为文章类型名称
        return home_url( 'bulletin/' . $post->ID .'.html' );//注意里面bulletin为文章类型前缀
    } else {
        return $link;
    }
}
add_action( 'init', 'custom_bulletin_rewrites_init' );
function custom_bulletin_rewrites_init(){
    add_rewrite_rule(
        'bulletin/([0-9]+)?.html$',
        'index.php?post_type=bulletin&p=$matches[1]',
        'top' );
}

WordPress自定义类型文章链接


//根据需要添加你的自定义文章类型,这里的数组呢,一般人讲的教程不是很详细,可以这么仔细看下面。
//type1是类型1赋给右边slug1,也是就说比如你文章有个shop商城类型先获取到这个类型然后把这个shop类型前缀改个前缀名称就等于右边。
//举例shop=>shangcheng那么以后你的商城的自定义类型链接就是这样的了,原xxxx/shop/1.html变成xxxx/shangcheng/1.html以下多个呢同理,当然你也可以不用改变这个前缀还是可以用原有的前缀:shop=>shop,那么商城链接还是shop。
$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' );
    }
   //补充说明,这样就可以翻页了其它的教程也不说卵
    add_rewrite_rule(
         $v.'/([0-9]+)?.html/([0-9]{1,})$',
        'index.php?post_type='.$k.'&p=$matches[1]&page=$matches[2]',
        'top'
        );	
   //带有评论分页
    add_rewrite_rule(
        $v.'/([0-9]+)?.html/comment-page-([0-9]{1,})$',
        'index.php?post_type='.$k.'&p=$matches[1]&cpage=$matches[2]',
        'top'
        );
}

OK本WordPress自定义类型文章链接介绍完毕,如果你实在搞不懂这个代码就推荐用这个设置插件:Custom Post Type Permalinks,不过还是推荐大家使用本WordPress教程提供的方法。