1

特定の投稿タイプのみにアクセスする必要があるカスタム ユーザー ロールがあり、これを使用して他のメニューを非表示にしようとしています。

function remove_menus () {

    global $current_user;
    if ($current_user->wp_capabilities['my_custom_capability']){

        global $menu;
        $restricted = array(
        __('Supporters'),
        __('Posts'),
        __('Press Release'),
        __('Consumer Care'),
        __('Tools')
        );
        end ($menu);
        while (prev($menu)){
            $value = explode(' ',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
        }
    }
}
add_action('admin_menu', 'remove_menus');

これは、サポーター (別のカスタム投稿タイプ)、投稿、およびツールに対して機能しますが、コンシューマー ケアまたはプレス リリースに対しては機能しません。配列で考えられるすべてのバリエーションを試しました:

__('Consumer_Care'),
__('Consumer-Care'),
__('consumer care'),
__('consumer-care'),
__('consumer_care')

それらのどれも仕事をしません。どうすればいいですか?

4

1 に答える 1

0

アクション コールに高い優先度を追加するだけです。プラグインがないと、デフォルト10で起動し、その後多くのプラグインが実行されるため、プラグインをunset取得できません。

add_action( 'admin_menu', 'remove_menus', 999 );
于 2013-04-12T22:53:56.757 に答える