ジーニアスブログ – WEB制作会社ジーニアスウェブのお役立ちブログ

【WordPress】管理画面から使わない項目を消す方法

皆さんこんにちは、ジーニアスウェブの黒木です。

そこのあなた、WordPress使ってますね?

webのお仕事をされている方、興味がある方など、このブログを読んでいる方のほとんどが一度は使ったことがあると思います。

今日はそのWordPressの管理画面のメニュー項目の非表示を行う方法をご紹介したいと思います。

 

WordPressの管理画面には何があるのか?

WordPressの管理画面のメニューには、大きく分けてメニューバーと言われる部分とサイドメニューと言われる部分があります。

サイドメニューには「ダッシュボード」「投稿」など標準で10のメニューがあります。

これらの中にはテーマそのものを編集できるものなど、サイトのコアな部分を編集できてしまう場所が多くあります。

これらはたとえ管理者でも普段ほとんど使わない機能ではないでしょうか?

 

権限グループによるメニューの違い

WordPressには、以下の権限グループがあります。

今回は管理者と投稿者のメニューを見比べて見ます。

4つくらい減りましたね。

このように投稿者には必要な要素しか使えないようになっているんです。

今回はここからさらに減らして、「投稿」と「プロフィール」だけにしてしまおうと思います!

 

メニューを減らす方法(本題)

さて、ここからが本題です。

メニューを減らすにはfunctions.phpに以下を追記します。

add_action( 'admin_menu', 'remove_menus' );
function remove_menus(){
	remove_menu_page( 'index.php' ); //ダッシュボード
	//remove_menu_page( 'edit.php' ); //投稿メニュー
	remove_menu_page( 'upload.php' ); //メディア
	remove_menu_page( 'edit.php?post_type=page' ); //ページ追加
	remove_menu_page( 'edit-comments.php' ); //コメントメニュー
	remove_menu_page( 'themes.php' ); //外観メニュー
	remove_menu_page( 'plugins.php' ); //プラグインメニュー
	remove_menu_page( 'tools.php' ); //ツールメニュー
	remove_menu_page( 'options-general.php' ); //設定メニュー
}

※投稿メニューは残すのでコメントアウトしています

すると、以下のように「投稿」と「プロフィール」のみになります!

 

これで完了と言いたいところですが、この記述だと管理者も「投稿」と「ユーザー」のみになってしまうんです…

もちろん防ぐ方法はあります!

以下の記述を追記して、投稿者のメニューのみ表示を変更しましょう!

if( current_user_can( 'author' ) ){

}

先のコードと合わせるとこんな感じ↓

add_action( 'admin_menu', 'remove_menus' );
function remove_menus(){
	if( current_user_can( 'author' ) ){
		remove_menu_page( 'index.php' ); //ダッシュボード
		//remove_menu_page( 'edit.php' ); //投稿メニュー
		remove_menu_page( 'upload.php' ); //メディア
		remove_menu_page( 'edit.php?post_type=page' ); //ページ追加
		remove_menu_page( 'edit-comments.php' ); //コメントメニュー
		remove_menu_page( 'themes.php' ); //外観メニュー
		remove_menu_page( 'plugins.php' ); //プラグインメニュー
		remove_menu_page( 'tools.php' ); //ツールメニュー
		remove_menu_page( 'options-general.php' ); //設定メニュー
	}
}

皆さんお気づきかと思いますが、authorの部分で投稿者を指定しています。

もちろん他の権限グループも指定できます、参考までに書いておきますね。

これでメニューの非表示対応が完了です。

 

最後に

いかがでしたでしょうか?

以外に簡単にできるんだなと、思ったかもしれませんね。

ただ1点ご注意頂きたいのが、今回の対応はあくまで非表示というところです。

※URLにindex.phpと追記すれば「ダッシュボード」が見えてしまいます

なので、完全にアクセスさせたくないのであれば、権限を編集する必要があります。

こちらも同じように対応は可能なので、また今度ご紹介できればと思います。

それでは。