0

父主题注册了一个名为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;
4

2 回答 2

5

如果您只想隐藏管理菜单项,请将其放入您的子主题的 functions.php 文件中:

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

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

于 2012-12-02T23:25:19.510 回答
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' );    
}

参考:取消注册自定义帖子类型

于 2012-12-03T00:51:59.920 回答