Default custom post type url

时间:2017-11-10 作者:Carlos

我已经创建了一个带有以下基本slug的自定义post类型sections.

public static function post_type_register_sections() {
    global $slug;

    $labels = array(
        \'labels\' => array(
            \'name\' => __(\'Sections\'),
            \'singular_name\' => __(\'Sections\'),
        ),
        \'public\' => true,
        \'rewrite\'   => array(\'slug\' => $slug),
        \'has_archive\' => true,
        \'show_in_menu\' => false,
        \'publicly_queryable\' => true,
        \'query_var\' => true,
        \'show_in_nav_menus\' => false,
        \'hierarchical\' => true,
        \'show_in_admin_bar\' => false,
        \'menu_icon\' => \'dashicons-visibility\',
        \'supports\' => array(\'title\', \'excerpt\', \'page-attributes\')
    );

    register_post_type(\'makeup_section\', $labels);
}
现在当我用任何url创建其他帖子时hierarchical 如果设置为true,它会预先设置,这就是我想要的。

localhost:3005/en/sections/test
localhost:3005/en/sections/test/child
以上任何一个URL都可以正常工作,我得到了所需的$post.但当我想探访根的时候,localhost:3005/en/sections/ 它返回给我一个$post 即使其中一个不是指定的。有什么方法可以验证这一点吗?从我想去基地的时候开始localhost:3005/en/sections/ 我不想让它给我任何回报$post.

localhost:3005/en/sections/ 还给我$post 从…起localhost:3005/en/sections/test.

我已尝试设置rewritearray(\'with_front\' => false) 但它无法识别子URL。

===编辑===

这是“管理”菜单中显示的基址后寄存器类型

post_type_register_sections 从上面看,这是一个孩子。

public static function post_type_register()
{
    $labels = array(
        \'labels\' => array(
            \'name\' => __(\'MakeUp\'),
            \'singular_name\' => __(\'MakeUp\'),
        ),
        \'public\' => true,
        \'has_archive\' => true,
        \'show_in_menu\' => true,
        \'publicly_queryable\' => true,
        \'query_var\' => true,
        \'show_in_nav_menus\' => false,
        \'hierarchical\' => false,
        \'show_in_admin_bar\' => false,
        \'menu_icon\' => \'dashicons-art\',
        \'supports\' => array(\'title\', \'excerpt\'),
    );
    register_post_type(\'makeup\', $labels);
}

1 个回复
SO网友:Milo

您已设置\'has_archive\' => true, 这将使您的帖子类型成为存档URLlocalhost:3005/en/makeup_section/, 因为如果不指定字符串,它将使用post类型slug。

将其更改为\'has_archive\' => \'sections\' 将其放置在localhost:3005/en/sections/.

结束

相关推荐

Virtual Pages plugins

我很难让插件正常工作Virtual Pages (WordPress插件可简化虚拟页面的创建)我确实进行了编辑,根据查询创建了一个循环。add_action( \'gm_virtual_pages\', function( $controller ) { /* Creating virtuals pages for companies */ $args = array( \'post_type\' => array(\'companies\',), \'post_status\'