用 register_post_type_args 重新定义 'POST' post 类型的 slug

redefining the 'POST' post-type slug with register_post_type_args

我正在尝试重新定义默认 post 类型 'POST' 的属性。我正在尝试使用函数 register_post_type_args.

我想将 post 类型的标签从 "article" 重新定义为 "blog",并且我想为此 post 添加 slug "blog"输入他的 url (mysite/blog/my-post)

这是他在 functions.php 的电话:

function post_to_blog ($args, $post_type) {
    if ('post' !== $post_type) {
        return $args;
    }

    $args ['label'] = 'Blog';
    $args ['rewrite'] = array ('slug' => "blog", 'with_front' => true);
    return $args;
}
add_filter ('register_post_type_args', 'post_to_blog', 1, 2);

标签 属性 已正确重新定义。标签在后台更改。 但是没有考虑 post slug。我的 post 的 url 仍然是 mysite/name-of-post 而不是 mysite/blog/name-of-post

(我无法在设置/永久链接中添加 slug,因为我需要为其他 post 类型保留默认的 url 类型)。

我想我是用 register_post_type_args 做的,但我不明白为什么没有考虑 slug。你有解释吗?

编辑:

出于好奇,我尝试用register_post_type重新定义post。这不是正确的方法,但使用此解决方案,可以正确地重新定义 URL。

register_post_type( 'post', array(
    'label' =>  'Blog',
    'rewrite' => array('slug' => "blog/", 'with_front' => true),
));

我回来解决这个问题,因为 register_post_type_args.

似乎没有解决方案

事实上,似乎无法重新定义一些默认的post-type属性。可以修改一些标签,例如标签。但是slug是不能改变的属性之一。

对于我的永久链接问题,我被迫使用 back-office 中的永久链接设置,并以另一种方式解决该问题。

函数 register_post_type_args 然而与自定义 post 类型完美配合。可以完全重新定义。

这最终可能会有所帮助。