「メニュー」タグアーカイブ

WordPressのコメントページ上の、コメントメニュー(スパム、承認待ち等)を非表示に BuddyPressカスタマイズメモ

コメントページ上の、コメントメニュー(スパム、承認待ち等)を非表示にする方法

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

・「あなたのコメント」を管理画面のメニューに追加

・「あなたのコメント」に投稿者自身が、人の記事に書いたコメントを表示

で追加した、自分が「人の記事に対して」書いたコメント一覧を表示するページの上のメニューをシンプルにする。

functions.php へ記述

下記の例では、trash(ゴミ箱)、spam(スパム)、approved(承認済み)、moderated(承認待ち)、mine(自分)、all(全て)のうち、ゴミ箱と、全て、以外はコメントアウト「//」して削除している

//「あなたのコメント」の上のメニュー削除

if ( current_user_can( 'author' ) && ($pagenow == 'edit-comments-mine.php')) {
add_filter( 'comment_status_links',
function( $status_links ) {
$status_links['trash'] = sprintf(
  "<a href=%s>%s <span class='count'></span></a>",
  esc_url( admin_url( 'edit-comments-mine.php?comment_status=trash') ),
  __( 'ゴミ箱' )
);
$status_links['spam'] = sprintf(
//  "<a href=%s>%s <span class='count'></span></a>",
//  esc_url( admin_url( 'edit-comments-mine.php?comment_status=spam') ),
//  __( 'スパム' )
);
$status_links['approved'] = sprintf(
//  "<a href=%s>%s <span class='count'></span></a>",
//  esc_url( admin_url( 'edit-comments-mine.php?comment_status=approved') ),
//  __( '承認済み' )
);
$status_links['moderated'] = sprintf(
//  "<a href=%s>%s <span class='count'></span></a>",
//  esc_url( admin_url( 'edit-comments-mine.php?comment_status=moderated') ),
//  __( '承認待ち' )
);
$status_links['mine'] = sprintf(
//  "<a href=%s>%s <span class='count'></span></a>",
//  esc_url( admin_url( 'edit-comments-mine.php?comment_status=mine') ),
//  __( '自分' )
);
$status_links['all'] = sprintf(
  "<a href=%s>%s <span class='count'></span></a>",
  esc_url( admin_url( 'edit-comments-mine.php?comment_status=all') ),
  __( 'All' )
);
return $status_links; 
} );
}

ついでに、一括操作、スパムとしてマーク、などのメニュー(バルクメニュー)か下記で非表示にできる。

その方法はこちらで紹介。

・上のコメントメニュー(スパムチェック、一括操作も)削除

WordPressメニューの変更、非表示、IDの調べ方「投稿」→「記事」、「コメント」→「あなたの記事へのコメント」へ、メニューの文言変更 WordPress BuddyPressカスタマイズメモ

WordPressのメニューの文言を変更する方法

WordPressのSNSプラグイン、BuddyPressを導入してSNSを構築する場合、「コメント」だけだと自分が書いたコメントなのか、人が自分に対して書いたコメントなのかが分からないのでメニューを変更したい。

今回は、「投稿」→「記事」へ変更。
「コメント」→「あなたの記事へのコメント」に変更する。

 

functions.php へ記述

管理画面のメニューの文言を変更。
ちなみに順番を入れ替えたり、サブメニューの文言を変更したりもできる。

//投稿→記事、コメント→あなたの記事へのコメント

function change_post_label() {
global $menu;
global $submenu;
$menu[5][0] = '記事';
$menu[25][0] = 'あなたの記事へのコメント';
}
add_action( 'admin_menu', 'change_post_label' );
global $sabmenu;

サブメニューを変更しないのであれば、この1行は別になくてもいい。
 

メニューID一覧とサブメニューのID一覧を紹介

メニューとサブメニューのID(key/キー)一覧

$menu[2] // ダッシュボード
  $submenu['index.php'][0] //ホーム
  $submenu['index.php'][10] //更新
$menu[4] // セパレーター(区切り線)
$menu[5]  // 投稿
  $submenu['edit.php'][5] //投稿一覧
  $submenu['edit.php'][10] //新規投稿
  $submenu['edit.php'][15] //カテゴリー
  $submenu['edit.php'][16] //タグ
$menu[10] // メディア
  $submenu['upload.php'][5] //タグ
  $submenu['upload.php'][10] //新規追加
$menu[15] // リンク
  $submenu['link-manager.php'][5] //リンク一覧
  $submenu['link-manager.php'][10] //新規追加
  $submenu['link-manager.php'][15] //リンクカテゴリー
$menu[20] // 固定ページ
  $submenu['edit.php?post_type=page'][5] //固定ページ一覧
  $submenu['edit.php?post_type=page'][10] //新規追加
$menu[25] // コメント
  $submenu['edit-comments.php'][0] //すべてのコメント
$menu[26] // お問い合わせ
$menu[59] // セパレーター(区切り線)
$menu[60] // 外観
  $submenu['themes.php'][5] //テーマ
  $submenu['themes.php'][7] //ウィジェット
  $submenu['themes.php'][10] //メニュー
$menu[65] // プラグイン
  $submenu['plugins.php'][5] //インストール済みプラグイン
  $submenu['plugins.php'][10] //新規追加
  $submenu['plugins.php'][15] //プラグインエディター
$menu[70] // プロフィール
  $submenu['users.php'][5] //ユーザー一覧
  $submenu['users.php'][10] //新規追加
  $submenu['users.php'][15] //あなたのプロフィール
$menu[75] // ツール
  $submenu['tools.php'][5] //利用可能なツール
  $submenu['tools.php'][10] //インポート
  $submenu['tools.php'][15] //エクスポート
$menu[80] // 設定
  $submenu['options-general.php'][10] //一般
  $submenu['options-general.php'][15] //投稿設定
  $submenu['options-general.php'][20] //表示設定
  $submenu['options-general.php'][25] //ディスカッション
  $submenu['options-general.php'][30] //メディア
  $submenu['options-general.php'][35] //プライバシー
  $submenu['options-general.php'][40] //パーマリンク設定
$menu[99] // セパレーター(区切り線)

 

プラグインなどで勝手に追加されるメニューの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になっている。

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になっている。