web-dev-qa-db-ja.com

特定のユーザーのWordpressプラグインメニュー項目を削除する

特定のユーザーの特定のダッシュボードメニュー時間を削除したいです。現在、このメニューはプラグインメニュー項目でも構成されています。ユーザーから隠したい特定のプラグインはContact Form 7です。

これは、メニュー項目を隠すためにfunctions.phpファイルに追加されたコードです。

function remove_menus()
{
    global $menu;
    global $current_user;
    get_currentuserinfo();
    if($current_user->user_login == 'brian')
    {
        $restricted = array(__('Media'),
                            __('Links'),
                            __('Pages'),
                            __('Comments'),
                            __('Appearance'),
                            __('Plugins'),
                            __('Users'),
                            __('Tools'),
                            __('Settings'),
                    __('WPCF7')  //this does not work
        );
        end ($menu);
        while (prev($menu)){
            $value = explode(' ',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
        }// end while
    }// end if
}
add_action('admin_menu', 'remove_menus'); 

Contact Form 7 Pluginメニューを除いて、上記のコードにリストされているものはすべて隠れています。正しいプラグイン名を呼び出すにはどうすればいいですか?

ありがとう

2
DextrousDave

これがあなたが必要とするコードです:

global $current_user;
get_currentuserinfo();

if ( $current_user->user_login === 'brian' )
     remove_action( 'admin_menu', 'wpcf7_admin_menu', 9 );

あなた自身のコードを保持したい場合は、これを使用してください:

function remove_menus()
{
    global $menu;
    global $current_user;
    get_currentuserinfo();
    if($current_user->user_login == 'brian')
    {
        $restricted = array(__('Media'),
                            __('Links'),
                            __('Pages'),
                            __('Comments'),
                            __('Appearance'),
                            __('Plugins'),
                            __('Users'),
                            __('Tools'),
                            __('Settings'),
                    __('Contact')  //this does not work
        );
        end ($menu);
        while (prev($menu)){
            $value = explode(' ',$menu[key($menu)][0]);
            if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
        }// end while
    }// end if
}
add_action('admin_menu', 'remove_menus'); 

配列内のWPCF7をContactに変更しました。

3
user23654