WordPressでユーザー権限毎にCSSで表示内容を変更したい場合、2つの方法が考えられる。
1.ユーザー権限毎に body にclassをふる
こちらはユーザー権限毎にclassを出力するということだが、function.php に以下のコードで実現可能だ。
function add_user_role_class( $admin_body_class ) { global $current_user; if ( ! $admin_body_class ) { $admin_body_class .= ' '; } $admin_body_class .= 'role-' . urlencode( $current_user->roles[0] ); return $admin_body_class; } add_filter( 'admin_body_class', 'add_user_role_class' );
2.ユーザー権限毎にCSSを出力する
ちょっとした修正であれば、表示させたいテンプレートに以下のコードでCSSを適用させる事ができる。
ちなみに以下は投稿者以下には非表示にさせるコード。
<?php if (!current_user_can('level_7')) { echo('<style type="text/css"> .hidden7 { display: none; }</style>'); } ?>
上記のコードに加え、投稿者以下に見せたくないコンテンツをhidden7でクラスを指定する。