課題解決Tips

[WordPress] 管理画面のメニューを非表示にして誤操作を減らす

salmoncode
記事内に商品プロモーション(Amazonアソシエイト含む)を含む場合があります。

管理画面の誤操作を防ぐために

こんにちは。エンジニアのサーモンです。

Webサイト構築のためにWordPressテーマを開発している場合、納品後の運用も考慮しなくてはなりません。

サイトへの記事投稿や固定ページの編集を行なってもらうのであれば、その権限をつけたアカウントを作成すれば良いのですが、管理画面のフル権限が欲しいと言われる場合もあります。

しかし、もし間違ってプラグインなどを更新してしまい、サイトが動かなくなってしまったら大変です。

日頃からバックアップを取っているとしても、できれば未然に防ぎたいですよね…

というわけで、操作されたら困る項目は管理画面から非表示にしてしまいましょう!

管理画面の項目を非表示にする

具体的な方法ですが、管理画面の項目はコードから非表示にすることができます。

以下に管理画面の項目を非表示にするコードを示します。

(functions.phpに追記してください)

1<?php
2add_action( 'admin_menu', 'hide_menus' );
3function hide_menus(){
4    remove_menu_page( 'index.php' ); // ダッシュボード
5    remove_menu_page( 'upload.php' ); // メディア
6    remove_menu_page( 'edit-comments.php' ); // コメント
7    remove_menu_page( 'themes.php' ); // 外観
8    remove_menu_page( 'tools.php' ); // ツール
9    remove_menu_page( 'options-general.php' ); //設定
10}
11?>

解説

上記のコードは、WordPressのHooksという機能を利用しています。

その中にはadmin_menuというhookが存在します。

このhookに関数を登録しておくと、管理画面の構築が完了した直後に発火します。

実際に管理画面から項目を非表示にしているのは、remove_menu_pageという関数です。

引数にWordPress内のファイル名を指定することで、メニューに利用する配列のデータから削除することができます。

正しく非表示にできたかは、返り値がfalseになっていないかによって確認することができます。

なお、サブメニューのみ非表示にしたい場合は、remove_submenu_pageを利用してください。

終わりに

テーマやプラグインに更新があると結構目立つ形で通知が出ます。

そのため、そのままだと間違って管理画面を操作してしまう恐れがあります。

メニュー自体を非表示にしてしまえば、間違った操作を防ぐだけでなく、目的の項目を見つけやすくもなります。

ぜひ活用してみてください。

ABOUT ME
サーモン
サーモン
著者(ソフトウェアエンジニア)
情報系大学院を卒業後、ソフトウェアエンジニアとして都内企業に従事。プログラミング歴は10年以上になります。
記事URLをコピーしました