2014.06.03

WordPress 投稿画面上部の新規追加ボタンを非表示にする

こんにちは(o’∀’)ノ 最近暑くなりましたね! 会社のコーヒーもアイスコーヒーになりました。 既に熱中症で倒れている方もいるようですので、みなさんも気を付けてくださいね!
さて、管理者権限以外のユーザーに、固定ページの編集はさせたいけれど、新規追加はさせたくないぞというパターンがあったので、 WP Admin UI Customize , functions.php , CSS の3つでダッシュボードのカスタマイズをしました。

WP Admin UI Customizeでサイドバーの新規追加を削除

まず、管理者権限以外のユーザーのダッシュボードのサイドバーから、『固定ページ>新規追加』を削除します。 私は大体『WP Admin UI Customize』を使用して、サイドバーのメニューをいじっています。カスタマイズが簡単で便利なので。 20140602-2 1.WP Admin UI Customize>ユーザー権限グループで、編集者にチェック。(今回は編集者以外にも適用させています。) 20140602-5 2.サイドメニュー>固定ページ>新規追加を削除して保存します。20140602-1 3.編集者権限でログインし、確認をします。新規追加を削除できました! 20140602-3 が!これだけではまだ不十分で、固定ページ一覧、固定ページの新規投稿画面の上部に新規追加ボタンが残っているのでこれも削除したい。これはWP Admin UI Customizeでは非表示に出来ないので、CSSを使用して削除します。 20140602-4

functions.phpで投稿画面の新規追加ボタンを非表示にする

functions.phpに以下のコードを追加します。
// 新規投稿ボタンを非表示
if (!current_user_can('level_10')) {
add_action('admin_enqueue_scripts', 'admin_hidden_css');
 function admin_hidden_css() {
 echo '<style>.add-new-h2 {display: none;}</style>';
 }
}
固定ページ一覧、固定ページの新規投稿画面の上部にある新規追加ボタンは、ソースを見てみると、.add-new-h2というclass名が振られているので、display: none;で非表示にしています。 if(!current_user_can(‘level_10’))で括ることによって、管理者権限(level10)以外のユーザーがログインしている場合にのみ反映されます。(特別な理由がない限りお客様に管理者権限を渡すことはしないので、非表示にする必要がない。) ※この方法だと、固定ページだけじゃなく、投稿一覧、投稿の新規投稿ページにも適用されてしまうので、サイドバーのメニューから新規追加出来るようにしています。

admin_print_stylesは使用しない

以前は、admin_print_stylesを使用していたのですが、Codexに『admin_print_stylesは使用するべきはない。代わりadmin_enqueue_scriptsを使用してください』(参照元:Plugin API/Action Reference/admin print styles) と書いてあり、WordPress3.3で非推奨にもなっているようですので、admin_enqueue_scriptsを使用しています。