Rewrite default post type

时间:2016-11-04 作者:WpDev

我想将默认的帖子类型URL重写为/blog/2016/11/my-post-name/ 不影响其他帖子类型的url。我试过:

add_action(\'admin_menu\',\'remove_default_post_type\');
function remove_default_post_type() {
    remove_menu_page(\'edit.php\');
}

add_action( \'init\', \'set_default_post_type\', 1 );

function set_default_post_type() {
register_post_type( 
    \'post\',
        array(
        \'labels\' => array(
            \'name_admin_bar\' => _x( \'Post\', \'add new on admin bar\' ),
        ),
        \'public\' => true,
        \'_builtin\' => false,
        \'_edit_link\' => \'post.php?post=%d\',
        \'capability_type\' => \'post\',
        \'map_meta_cap\' => true,
        \'hierarchical\' => false,
        \'rewrite\' => array(
            \'slug\' => \'blog/%year%/%monthnum%/%postname%/\',
            \'with_front\'=> false,
        ),
        \'query_var\' => false,
        \'supports\' => array( \'title\', \'editor\', \'author\', \'thumbnail\', \'excerpt\', \'trackbacks\', \'custom-fields\', \'comments\', \'revisions\', \'post-formats\' ),
    ) 
 );
}
但没有成功。url保持为/blog/my-post. 有没有一种方法可以让permalinks成为默认的post类型,比如/blog/2016/11/my-post-name/ (其中2016年为发布年份,11年为发布月份)不影响其他发布类型URL?

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

使用admin中的字段Settings > Permalinks 设置永久链接结构的页面/blog/%year%/%monthnum%/%postname%/.

要防止自定义帖子类型继承post permalink结构,请设置with_frontfalse 在您的register_post_type 所有自定义帖子类型的参数。

版本4.4还添加了register_post_type_args 筛选以允许修改由您无权更改的代码注册的类型的post类型参数。

SO网友:Demyd Ganenko

您可以使用Custom Permalink 插件https://ru.wordpress.org/plugins/custom-permalinks/

但它不能使用permalink“模板”。您需要为编辑页面上的每篇文章输入自定义永久链接。

相关推荐

Moving Website-URL

我尝试根据the codex (尝试错误的方式后-只需在WordPress设置中更改URL)但现在我做到了,我的主页仍然存在,但我的其余页面不再显示(404)。有什么问题吗?有什么想法吗?提前感谢!