从子主题中删除管理菜单项

时间:2012-12-02 04:00:33

标签: wordpress custom-post-type

父主题注册名为risen_event的自定义帖子类型。我决定使用另一个日历插件,因此想要从用户中删除此管理菜单项。

在子主题中,我尝试了这个功能,但它不起作用

if ( ! function_exists( 'unregister_post_type' ) ) :
function unregister_post_type( $post_type ) {
    global $wp_post_types;
    if ( isset( $wp_post_types[ $post_type ] ) ) {
        unset( $wp_post_types[ $post_type ] );
        return true;
    }
    return false;
}
endif;

2 个答案:

答案 0 :(得分:4)

如果你要做的就是隐藏管理菜单项,请将它放在你孩子主题的functions.php文件中:

function hide_menu_items() {
    remove_menu_page( 'edit.php?post_type=your_post_type_url' );
}
add_action( 'admin_menu', 'hide_menu_items' );

将鼠标悬停在管理员菜单项上并查看该网址,以获取要在该功能中使用的正确网址。这不会取消注册帖子类型,只需隐藏管理菜单项。这样就可以保留帖子类型,以防您以后决定要使用它。

答案 1 :(得分:0)

根据您发布的代码,您似乎没有调用此功能。

但是调用不能直接,你必须把它包装在一个动作中,比如:

add_action( 'init', 'so_13666286_init', 11 );

function so_13666286_init()
{
    unregister_post_type( 'risen_event' );
}

或使用其他技术:

add_action( 'after_setup_theme','so_13666286_remove_action', 100 );

function so_13666286_remove_action() 
{   
    remove_action( 'init', 'the_init_function_that_creates_the_cpt' );    
}

参考:Deregister custom post types