「wordpress」タグアーカイブ

管理画面のアドミンバー内の「更新」「ヘルプ」「表示オプション」「Wロゴ」などのメニューを非表示 WordPress BuddyPressカスタマイズメモ

管理者以外は、プラグイン、ユーザーなどのサブメニューを非表示にする

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。

できるだけシンプルにしたいので、管理画面の上の「更新」「ヘルプ」「表示オプション」「Wのロゴ」などを非表示にする。

remove_menuでPHPの読み込みをさせないようにできる場合は、そちらを優先。

remove_menuが使えない「ヘルプ」や「表示オプション」は、仕方ないのでCSSで非表示にしておく。

 

functions.php へ記述で、PHPを読み込ませない

//管理者以外の管理画面のアドミンバー内のメニュー非表示

if ( ! current_user_can( 'administrator' ) ) {
 function my_remove_adminmenu( $wp_admin_bar ) {
  $wp_admin_bar->remove_node('wp-logo');        //左上の「W」のロゴ
  //$wp_admin_bar->remove_menu( 'site-name' );  // サイト名
  $wp_admin_bar->remove_menu( 'view-site' );    // サイト名 -> サイトを表示
  $wp_admin_bar->remove_menu( 'dashboard' );    // サイト名 -> ダッシュボード (公開側)
  $wp_admin_bar->remove_menu( 'themes' );       // サイト名 -> テーマ (公開側)
  $wp_admin_bar->remove_menu( 'customize' );    // サイト名 -> カスタマイズ (公開側)
  //$wp_admin_bar->remove_menu( 'comments' );   // コメント
  $wp_admin_bar->remove_menu( 'updates' );      // 更新
  $wp_admin_bar->remove_menu( 'view' );         // 投稿を表示
  $wp_admin_bar->remove_menu( 'new-content' );  // 新規
  $wp_admin_bar->remove_menu( 'new-post' );     // 新規 -> 投稿
  $wp_admin_bar->remove_menu( 'new-media' );    // 新規 -> メディア
  $wp_admin_bar->remove_menu( 'new-link' );     // 新規 -> リンク
  $wp_admin_bar->remove_menu( 'new-page' );     // 新規 -> 固定ページ
  $wp_admin_bar->remove_menu( 'new-user' );     // 新規 -> ユーザー
  $wp_admin_bar->remove_menu( 'my-account' );   // マイアカウント
  $wp_admin_bar->remove_menu( 'user-info' );    // マイアカウント -> プロフィール
  $wp_admin_bar->remove_menu( 'edit-profile' ); // マイアカウント -> プロフィール編集
  $wp_admin_bar->remove_menu( 'logout' );       // マイアカウント -> ログアウト
  $wp_admin_bar->remove_menu( 'search' );       // 検索 (公開側)
  $wp_admin_bar->remove_menu( 'bp-notifications' ); // BuddyPressの通知
}
add_action( 'admin_bar_menu', 'my_remove_adminmenu', 1000 );
}

頭に「//」がついている場合は、コメントアウトされて非表示にならないので、上のコードで、例えば「コメント」も非表示にしたい場合は、
頭の

//$wp_admin_bar->remove_menu( 'comments' );

の//を消しておく。
 

functions.php へ記述でCSSで非表示にする。

//cssで、ヘルプや表示オプション、管理画面のフッターなどの不要なモノを見えなくする

if (!current_user_can('administrator')) {
function my_admin_print_styles(){
	echo '<style type="text/css">';
		//投稿のエディタボタン関連
		echo '#contextual-help-link-wrap,';//ヘルプ
		echo '#screen-options-link-wrap,';//表示オプション
		echo '#collapse-menu,';//管理画面のメニューを閉じるボタン
		echo '#wpfooter';//フッター
		echo '{display:none !important;}';
	echo '</style>';
}
add_action('admin_print_styles', 'my_admin_print_styles', 21);
}

“管理者”でもメニューを削除したい場合は、一番上と一番下の

if (!current_user_can('administrator')) {

}

を削除すればいい。

プラグインなどで勝手に追加されるメニューのIDを調べる方法

functions.phpへ

function check_post_label_id() {
    global $wp_admin_bar;
    var_dump($wp_admin_bar);
}
add_action( 'admin_menu', 'check_post_label_id' );

これを書いて、ページ(ソース)を見ると

array(数字) {[0]->string(数字)"メニューの単語"[1]=>string(数字)"スラッグ"......}

って感じの文字の羅列が見えるので、

“メニューの単語” の前にある array(数字)数字が”メニューの単語”のIDになっている。

管理画面のメニューのアドミンバーの、BuddyPress通知の吹き出しを非表示に WordPress BuddyPressカスタマイズメモ

管理者以外は、プラグイン、ユーザーなどのサブメニューを非表示にする

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。

できるだけシンプルにしたいので、管理バーの右上に出てくるBuddyPressの通知の吹き出しを削除したい。


 

functions.php へ記述

//アドミンバーの通知を消す

if (!current_user_can('administrator')) {
remove_action( 'bp_adminbar_menus', 'bp_adminbar_notifications_menu', 8 );
}

“管理者”でもメニューを削除したい場合は、一番上と一番下の

if (!current_user_can('administrator')) {

}

を削除すればいい。

WordPress BuddyPressカスタマイズメモ 管理画面のサブメニューの非表示。管理者以外

管理者以外は、プラグイン、ユーザーなどのサブメニューを非表示にする

WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになる。

管理者以外の、編集者や投稿者には、非表示にしておきたいメニューがある。

管理画面の一部のメニューを非表示にするで、メニューごと非表示にする方法は商会した。

今回はサブメニューだけを非表示にする方法。

functions.php へ記述

//管理画面のサブメニューの非表示(管理者以外)

if (!current_user_can('administrator')) {
function remove_submenus() {
// remove_submenu_page('index.php', 'index.php'); // ダッシュボード -> ホーム
// remove_submenu_page('index.php', 'update-core.php'); // ダッシュボード -> 更新
// remove_submenu_page('edit.php', 'edit.php'); // 投稿 -> 投稿一覧
// remove_submenu_page('edit.php', 'post-new.php'); // 投稿 -> 新規追加
// remove_submenu_page('edit.php', 'edit-tags.php?taxonomy=category'); // 投稿 -> カテゴリ
// remove_submenu_page('edit.php', 'edit-tags.php?taxonomy=post_tag'); // 投稿 -> タグ
// remove_submenu_page('upload.php', 'upload.php'); // メディア -> ライブラリ
// remove_submenu_page('upload.php', 'media-new.php'); // メディア -> 新規追加
// remove_submenu_page('link-manager.php', 'link-manager.php'); // リンク -> すべてのリンク
// remove_submenu_page('link-manager.php', 'link-add.php'); // リンク -> 新規追加
// remove_submenu_page('link-manager.php', 'edit-tags.php?taxonomy=link_category'); // リンク -> リンクカテゴリー
// remove_submenu_page('edit.php?post_type=page', 'edit.php?post_type=page'); // 固定ページ -> 固定ページ一覧
// remove_submenu_page('edit.php?post_type=page', 'post-new.php?post_type=page'); // 固定ページ -> 新規追加
// remove_submenu_page('themes.php', 'themes.php'); // 外観 -> テーマ
// remove_submenu_page('themes.php', 'widgets.php'); // 外観 -> ウィジェット
// remove_submenu_page('themes.php', 'theme-editor.php'); // 外観 -> テーマ編集
// remove_submenu_page('plugins.php', 'plugins.php'); // プラグイン -> インストール済みプラグイン
// remove_submenu_page('plugins.php', 'plugin-install.php'); // プラグイン -> 新規追加
// remove_submenu_page('plugins.php', 'plugin-editor.php'); // プラグイン -> プラグイン編集
// remove_submenu_page('users.php', 'users.php'); // ユーザー -> ユーザー一覧
// remove_submenu_page('users.php', 'user-new.php'); // ユーザー -> 新規追加
// remove_submenu_page('users.php', 'profile.php'); // ユーザー -> プロフィール
// remove_submenu_page('tools.php', 'tools.php'); // ツール -> 利用可能なツール
// remove_submenu_page('tools.php', 'import.php'); // ツール -> インポート
// remove_submenu_page('tools.php', 'export.php'); // ツール -> エクスポート
// remove_submenu_page('options-general.php', 'options-general.php'); // 設定 -> 一般
// remove_submenu_page('options-general.php', 'options-writing.php'); // 設定 -> 投稿設定
// remove_submenu_page('options-general.php', 'options-reading.php'); // 設定 -> 表示設定
// remove_submenu_page('options-general.php', 'options-discussion.php'); // 設定 -> ディスカッション
// remove_submenu_page('options-general.php', 'options-media.php'); // 設定 -> メディア
// remove_submenu_page('options-general.php', 'options-privacy.php'); // 設定 -> プライバシー
// remove_submenu_page('options-general.php', 'options-permalink.php'); // 設定 -> パーマリンク設定
}
add_action('admin_menu', 'remove_submenus', 102);
}

「//」を頭につけると、コメントアウトなので、メニューからは削除されない。

上の例でいくと、「ユーザー一覧」を非表示にしたいなら、

// remove_submenu_page('users.php', 'users.php'); // ユーザー -> ユーザー一覧

  ↓

 remove_submenu_page('users.php', 'users.php'); // ユーザー -> ユーザー一覧

と、頭の//を削除すればいい。

“管理者”でもメニューを削除したい場合は、一番上と一番下の

if (!current_user_can('administrator')) {

}

を削除すればいい。

 

メニューを非表示にしている場合は、サブメニューも強制非表示

例えば、メニューの「ユーザー」を

remove_menu_page('users.php');

で非表示にしている場合は、

remove_submenu_page('users.php', 'users.php');
remove_submenu_page('users.php', 'user-new.php');
remove_submenu_page('users.php', 'profile.php');

と書いていなくても、

「ユーザー」のサブメニューである
ユーザー -> ユーザー一覧
ユーザー -> 新規追加
ユーザー -> プロフィール

の3個は強制的に非表示になる。

プラグインなどで勝手に追加されるメニューのIDを調べる方法

functions.phpへ

function check_post_label_id() {
    global $menu;
    global $submenu;

    var_dump($menu);
    var_dump($submenu);
}
add_action( 'admin_menu', 'check_post_label_id' );

これを書いて、ページ(ソース)を見ると

array(数字) {[0]->string(数字)"メニューの単語"[1]=>string(数字)"スラッグ"......}

って感じの文字の羅列が見えるので、

“メニューの単語” の前にある array(数字)数字が”メニューの単語”のIDになっている。