重写自定义POST类型的slug以包含POST-ID

时间:2014-08-18 作者:Karthik

我当前的永久链接设置为/%postname%/%post_id%/. 希望将其用于CPT。当前URL看起来像站点。com/问题/标题/

希望在每个cpt帖子的url末尾获取帖子id,类似于帖子类型post。。。

我找到的最接近的函数是。。。(输出site.com/questions/postid/)

add_filter(\'post_type_link\', \'change_post_type_link\', 1, 3);

function change_post_type_link( $link, $post = 0 ){
    if ( $post->post_type == \'questions\' ){
        return home_url( \'questions/\' . $post->ID );
    } else {
        return $link;
    }
}

add_action( \'init\', \'change_rewrites_init\' );

function change_rewrites_init(){
    add_rewrite_rule(
        \'questions/([0-9]+)?$\',
        \'index.php?post_type=questions&p=$matches[1]\',
        \'top\' );
}
TIA公司

1 个回复
SO网友:Nilambar Sharma

尝试以下操作:

function change_post_type_link( $link, $post = 0 ){
    if ( $post->post_type == \'questions\' ){
        return home_url( \'questions/\'. $post->post_name .\'/\'. $post->ID );
    } else {
        return $link;
    }
}

add_action( \'init\', \'change_rewrites_init\' );

function change_rewrites_init(){
    add_rewrite_rule(
        \'questions/([a-z-]+)/([0-9]+)?$\',
        \'index.php?post_type=questions&p=$matches[1]&postid=$matches[2]\',
        \'top\' );
}
此处连接后段塞questions 在URL中。例如questions/q-slug/45. 重写规则将相应更改。

结束

相关推荐