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を確認して、関数で使用する正しい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 に答える