• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

株式会社ハイファイブクリエイト

東京都を拠点にWebサイト制作やシステム構築、WordPress保守管理やウェブコンサルティングを提供。

  • SERVICE
  • ABOUT
  • WORKS
  • BLOG
  • NEWS
  • CONTACT
ホーム / ブログ / TIPS / 管理者以外がログインしたときに管理画面の見せ方をカスタマイズする

管理者以外がログインしたときに管理画面の見せ方をカスタマイズする

池田祐太郎 | 2017年12月30日 公開


WordPressは権限によって機能を制限することが可能です。管理者権限はプラグインの導入や削除、WordPressのアップデート、テーマの適用など全ての権限が扱え便利な反面、間違えてアップデートしてしまったり可能性があったり、全部の画面にアクセスできるため管理画面が煩雑になりがちです。

  • ログインしたときの画面をシンプルにしたい
  • WordPressに慣れていないクライアントに不要な画面へアクセスできないようにしたい
  • 間違ってアップデートをしないように制限をかけたい

例えばUser Role Editorプラグインでこのような制限をかけることは可能ですが、プラグインを利用しないでも機能制限を行うことが可能です。

クライアントワークの場合、管理者権限を渡したとしても、通常の記事更新の際のアカウントは編集者権限でログインいただいて、その編集者権限に対して制約をかけるという方法が問題も起きにくく、かつ運用もしやすいのではないでしょうか。

目次

  • 1 各権限による見え方の違い
  • 2 使いやすい管理画面とは?
    • 2.1 ヘッダーの更新情報などを非表示にする
    • 2.2 不要な項目を非表示にする
    • 2.3 ウィジェットを表示&不要な項目を非表示
  • 3 サンプルコード
    • 3.1 カスタム投稿やContact Form 7に対応する
  • 4 整理したあとの管理画面見え方

各権限による見え方の違い

管理者権限と編集者権限の見え方の違いを比較します。
まずは全権限のある「管理者権限「でログインしたダッシュボードの見え方。

続いて一つ下の権限である「編集者権限」でログイン。

編集者権限でログインしたときに、サイドバーのメニューがシンプルになっていますね。

  • WPコアやプラグイン等のアップデートができない
  • 「外観」にアクセスできず、テーマの変更やウィジェット、テーマカスタマイザーやメニュー等の変更ができない
  • プラグインの追加変更ができない
  • ユーザーの追加や削除ができず、自分のプロフィールしか見られない
  • サイトや投稿の設定、また各種プラグインの設定画面である「設定」にアクセスできない
  • その他、プラグインで追加されたメニューにアクセスできない

ざっと見てこのような制限がかかっています。
これでも色々と制約がかかっていますが、「もう少し画面をスッキリさせ、機能的に使いたい」という変更をしていきましょう。

使いやすい管理画面とは?

クライアントにとって使いやすい管理画面とは「必要のない余計な情報が表示されていない」「使いたい機能が揃っている」状況かと思います。一つずつみていきます。

ヘッダーの更新情報などを非表示にする


新しいWordPressが公開されると、ヘッダーに「WordPress 4.9.1 が利用可能です ! 今すぐ更新してください。」のような更新情報が表示されますが、これを非表示にします。
同時に、APIによるバージョン確認を行わないようにします。

不要な項目を非表示にする

  • ダッシュボードログイン後の画面に表示されている「アクティビティ」「クイックドラフト」「WordPressイベントとニュース」等を非表示にする
  • 右上のヘルプを非表示
  • 管理バーにある「WordPressシンボルマーク」を非表示(WordPressごめんなさい…)

といったような項目を非表示にすることで、クライアントが使わなそうな機能やリンクなどを非表示にします。

ウィジェットを表示&不要な項目を非表示


サイドバーの「外観」を無効にしつつ、ウィジェット機能のみ有効にしたいケースに対応します。
ドラッグ&ドロップで設定できる箇所やサイドバーのバナー部分など、クライアント側で触れる用に設定します。
※「ヘッダー」項目のみ非表示に設定する方法をご存知の方教えてください!

サンプルコード

前置きが長くなりました。以下のサンプルコードをfunctions.phpへ追加します。バックアップは取っておきましょう。

/*
* 管理者以外の管理画面の見せ方をカスタマイズ
*/
if (!current_user_can('edit_users')){
  //ヘッダーの更新情報を非表示&APIバージョン確認を行わない
  add_filter( 'pre_site_transient_update_core', '__return_zero' );
  remove_action( 'wp_version_check', 'wp_version_check' );
  remove_action( 'admin_init', '_maybe_update_core' );

  //ダッシュボードの不要な項目を非表示
  function example_remove_dashboard_widgets() {
          global $wp_meta_boxes;
          unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']); // 被リンク
          unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']); // プラグイン
          unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']); // アクティビティ
          unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); // クイック投稿
          unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); // WordPressブログ
          unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']); // WordPressフォーラム
          if (current_user_can('author')){ //投稿者のみ非表示にする
            unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']); // 概要
          }
  }
  add_action('wp_dashboard_setup', 'example_remove_dashboard_widgets');

  //右上のヘルプを非表示
  function disable_help_link() {
    echo '<style type="text/css">
                    #contextual-help-link-wrap {display: none !important;}
                </style>';
  }
  add_action('admin_head', 'disable_help_link');

  // 管理バーの項目を非表示
  function remove_admin_bar_menu( $wp_admin_bar ) {
    $wp_admin_bar->remove_menu( 'wp-logo' ); // WordPressシンボルマーク
    }
  add_action( 'admin_bar_menu', 'remove_admin_bar_menu', 70 );

  // ウィジェットを表示&不要な項目を非表示
  function customize_theme_caps(){
    $role = get_role( 'editor' );
    $role->add_cap( 'edit_theme_options' );
    remove_menu_page('edit-comments.php'); // コメント
    remove_menu_page('tools.php'); // ツール
    remove_submenu_page('themes.php', 'themes.php'); //外観>テーマ
    global $submenu; unset($submenu['themes.php'][6]); // Customize link
    remove_submenu_page('themes.php', 'nav-menus.php'); //外観>メニュー
    remove_submenu_page('themes.php', 'custom-header'); // 外観 -> カスタムヘッダー
    //remove_menu_page('wpcf7'); //コンタクトフォーム7
    //remove_menu_page( 'edit.php?post_type=カスタム投稿名' ); //カスタム投稿の名称を設定
  }
  add_action( 'admin_init', 'customize_theme_caps' );

  //カスタマイザーの表示項目を調整
  function customize_register_custom_demo( $wp_customize ) {
    $wp_customize->remove_section('title_tagline'); //サイト基本情報
    $wp_customize->remove_section('colors'); //色
    $wp_customize->remove_section('header_image'); //ヘッダーメディア
    remove_action( 'customize_register', array( $wp_customize->nav_menus, 'customize_register' ), 11 ); //メニュー
    //$wp_customize->remove_panel('widgets'); //ウィジェット
    $wp_customize->remove_section('static_front_page'); //固定フロントページ
    $wp_customize->remove_section('custom_css'); //追加CSS
  }
  add_action( 'customize_register', 'customize_register_custom_demo' );

}

カスタム投稿やContact Form 7に対応する

もし、特定のカスタム投稿タイプやプラグインのContact form 7を非表示にしたい場合、上記コードの該当箇所を書き換えて下さい。

//remove_menu_page('wpcf7'); //コンタクトフォーム7
//remove_menu_page( 'edit.php?post_type=カスタム投稿名' ); //カスタム投稿の名称を設定
↓
remove_menu_page('wpcf7'); //コンタクトフォーム7
remove_menu_page( 'edit.php?post_type=カスタム投稿名' ); //カスタム投稿の名称を設定

カスタム投稿名を指定する必要があるため、「カスタム投稿名」にカスタム投稿スラッグ名を書き換えます。

整理したあとの管理画面見え方


かなりスッキリしました!
ダッシュボードは概要のみ、サイドバーは必要最低限、しかしウィジェットにはアクセスできる。
環境に応じて表示非表示を設定していただいて、クライアントワークに活用いただければと思います。

参考: WordPressのテーマカスタマイザー項目を非表示にする方法

メールコンサルティング
WordPress保守管理サービス

Filed Under: TIPS 関連タグ:WordPressカスタマイズ

池田祐太郎

WordPressの導入を10年以上にわたって手掛けており、主に小〜中規模のコーポレートサイト・ECサイト・ブランドサイト等の企画・開発・保守・コンサルティングなどを行ってきました。2012年にハイファイブクリエイトを創業し、現在はWordPressの保守やコンサルティング、ディレクションや開発業務などを担当しています。 プロフィール詳細

この記事と関連する記事

WordPressの固定ページでタグやカテゴリーを使いたいときはカスタム投稿タイプを検討する
2022年1月27日
タグ: WordPressカスタマイズ
カテゴリー: WordPress
フレームワークを使ってWordPressサイトをリニューアルしたら表示速度が速くなった話
2018年6月4日
タグ: Webサイト高速化, WordPressカスタマイズ
カテゴリー: WordPress, ホームページ制作, モバイル
WP固定ページや投稿内でphpファイルを読み込むショートコード
2018年4月1日
タグ: WordPressカスタマイズ
カテゴリー: TIPS

人気記事

  1. git pull してもエラーが出てファイルが反映されないときの対処法
  2. 同一サーバー上に構築するWordPressのテスト環境の作り方
  3. WordPressの固定ページでタグやカテゴリーを使いたいときはカスタム投稿タイプを検討する
  4. サイト制作の要件定義書に普段書いている内容(ダウンロード可)
  5. WordPress において PHP 8.1 に更新していいかどうか検証
  6. [便利]困難な判断を10秒で AI が客観的に導き出すツールを試してみた

最初のサイドバー

WordPress保守管理サポート

Search

最近の投稿

  • [便利]困難な判断を10秒で AI が客観的に導き出すツールを試してみた
  • WordPress のクロスサイト・スクリプティング被害にあった事例を共有します
  • メール作業の生産性を向上させる最低限覚えておくべき Gmail のショートカットキー
  • タブ固定とタブ一発アクセスのショートカットキーの組み合わせでブラウザ作業の生産性を向上
  • メールフォームプラグイン MW WP Form を使いながら WP Rocket を使う場合にエラー回避する設定

カテゴリー

  • CSS初心者
  • HTML初心者
  • TIPS
  • WooCommerce
  • WordPress
  • エステサロン
  • お知らせ
  • キュレーション
  • サイトマップ
  • システム会社
  • デベロッパーツール入門
  • ブログ
  • ホームページ制作
  • ホームページ制作無料講座
  • メール
  • モバイル
  • 仕事のこと
  • 制作実績
  • 整体院
  • 美容院
  • 雑感

タグ

Android BtoC CMS css elementor git google workspace Gutenberg HTML iPhone jQuery Mac MAMP php SEO SNS ssh SSL Sublime Text Webサイト高速化 Windows WordPress WordPressカスタマイズ WordPressテーマ WordPress構築調査 WPRocket アクセス解析 アプリ クラウド クラウドソーシング サイト引っ越し サブスクリプション サーバー ショートカットキー スマホサイト スマートフォン ツール ブログ プラグイン マーケティング リニューアル 保守管理 改ざん 最適化 集客するサイト構築

アーカイブ

CONTACT

お問い合わせはこちら

Footer

  • PRIVACY POLICY
  • 情報セキュリティ基本方針
  • 特定商取引法に基づく表示
  • 転載/引用

© 2023 high five create All rights reserved.