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でクラスを指定する。