我已经创建了一个带有以下基本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
.
我已尝试设置rewrite
到array(\'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);
}