自定义帖子类型中的固定链接行为不佳

时间:2018-10-10 作者:Ramesh

我有一个职位类型叫careers,

function do_careers() {
 register_post_type(\'Careers\', array(
    \'labels\' => array(
        \'name\' => \'Careers\',
        \'singular_name\' => \'Career\',
        \'add_new_item\' => \'Add New Career\',
        \'edit_item\' => \'Edit Career\',
    ),
    \'description\' => \'Careers\',
    \'public\' => true,
    \'menu_position\' => 20,
    \'supports\' => array(\'title\')
 ));
}

add_action(\'init\', \'do_careers\');
以及为了/blog/ 在permalink of posts中,我有一个定制的permalink结构,比如,

/blog/%postname%/

当我有/blog/ 参与定制permalink我看到职业permalink是这样的https://www.abcd.net/blog/careers/blah-blah-blah/.

当我只有/%postname%/ 在custom permalink中,我可以看到我的博客文章permalink显示如下https://www.abcd.net/blah-blah-blah/. 部分/blog/ 不在这里,但职业联系是完美的https://www.abcd.net/careers/blah-blah-blah/.

我希望所有帖子(包括自定义帖子类型)都采用以下模式进行永久链接。

https://www.abcd.net/post_type/post_name

1 个回复
最合适的回答,由SO网友:Connor 整理而成

这个rewrite 的参数register_post_type() 我会帮你的。这个rewrite 参数是不同参数的数组,您需要的参数是with_front, 这决定了permalink base是否在您的帖子类型之前。它默认为true,将其设置为false将不会在permalink中包含permalink结构。它看起来像这样:

function do_careers() {
 register_post_type(\'Careers\', array(
    \'labels\' => array(
        \'name\' => \'Careers\',
        \'singular_name\' => \'Career\',
        \'add_new_item\' => \'Add New Career\',
        \'edit_item\' => \'Edit Career\',
    ),
    \'description\' => \'Careers\',
    \'public\' => true,
    \'menu_position\' => 20,
    \'supports\' => array(\'title\'),
    \'rewrite\' => array(
        \'with_front\' => false,
    ),
 ));
}

add_action(\'init\', \'do_careers\');
您还可以添加slug 的参数rewrite 数组以使post类型slug与post类型名称不同(如果希望这样做)。

结束