web-dev-qa-db-ja.com

ユーザーロールレベルに応じてcss、admin要素でターゲティングする方法

プラグイン「Capability Manager Enhanced」と「Adminimize」を使用しています。この2つの間で、私はやりたいことの多くを実行できました。

隠す必要がある要素がまだいくつかあり、それらをcssでターゲットにすることができました。

問題は、これらの要素がすべての管理ユーザーレベルにわたって隠されていることです。

管理者のさまざまな役割レベルを区別する何かが組み込まれていますか?

これを行う最善の方法は、ログイン時のロールレベルに応じてbodyタグにクラスを追加することです - ログインロールレベルが "author"の場合は "author"クラスなど.

これが最善の方法であれば、これを行うためのコードの書き方がわかりません。私はそれがfunction.phpへのphpの追加であろうと思います。 ???

4
Bob Nelson

admin_body_classフィルタを使用すると、bodyタグにクラスを追加できます。

この関数はすべてのロールをクラスとしてrole-$roleの形式で、例えばrole-administratorをbodyタグに追加します。

function wpa66834_role_admin_body_class( $classes ) {
    global $current_user;
    foreach( $current_user->roles as $role )
        $classes .= ' role-' . $role;
    return trim( $classes );
}
add_filter( 'admin_body_class', 'wpa66834_role_admin_body_class' );
5
Milo