当我激活插件时,为什么我的CPT没有出现在仪表板菜单上?

时间:2019-06-08 作者:Raul Magdalena Catala

我已将此代码添加到我的杂志中。php文件,但当它被激活时,CPT不会出现在仪表板菜单中。你知道为什么吗?这是一个非常简单的CPT,我不明白为什么它不工作。。。

add_action(\'init\', \'mc_setup_post_type\');

function mc_activation(){
// trigger the wp function that registers the custom post type
mc_setup_post_type();

//clear the permalinks after the post type has been registered
flush_rewrite_rules();
}

function mc_setup_post_type(){
//register the "magazine" custom post type

register_post_type(\'magazine\', array(
                              \'labels\' => array(
                                        \'name\' => \'magazine\'),
                              \'public\' => \'true\'));
}

1 个回复
SO网友:Jacob Peattie

问题是您已经为\'public\' 不正确。这个参数是布尔值,意思是truefalse, 在PHP中,这些内容需要在没有引号的情况下编写才能正确:

register_post_type(
    \'magazine\',
    array(
        \'labels\' => array(
                \'name\' => \'magazine\',
        ),
        \'public\' => true,
    )
);
要使帖子类型显示在管理侧栏中,\'show_in_menu\' 需要是true. 的默认值\'show_in_menu\' —如果未提供—与相同\'show_ui\', 其本身默认值为\'public\'. 这就是为什么\'public\' 设置不正确是导致问题的原因。

Pravin的答案之所以有效,是因为他在手动设置\'show_in_menu\'true. 但是,虽然这会使帖子类型出现在“管理”菜单中,但它仍然没有正确设置为“公共”,这意味着帖子类型仍然不会公开可见。这个\'show_in_menu\' 参数不是必需的,如果\'public\' 设置正确。

相关推荐