「wordpress」タグアーカイブ

WordPress BuddyPressカスタマイズメモ 管理画面の一部のメニューを非表示にする。管理者以外

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

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

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

ついでに、プラグインで追加されるメニューも、非表示にしたい。

functions.php へ記述

//管理画面の左のメニュー非表示

if (!current_user_can('administrator')) {
function remove_menus() {
  remove_menu_page('index.php'); // ダッシュボード
  remove_menu_page('separator1'); // セパレータ1
// remove_menu_page('edit.php'); // 投稿
// remove_menu_page('upload.php'); // メディア
  remove_menu_page('link-manager.php'); // リンク
// remove_menu_page('edit.php?post_type=page'); // 固定ページ
// remove_menu_page('edit-comments.php'); // コメント
  remove_menu_page('separator2'); // セパレータ2
  remove_menu_page('themes.php'); // 外観
  remove_menu_page('plugins.php'); // プラグイン
// remove_menu_page('users.php'); // ユーザー
  remove_menu_page('tools.php'); // ツール
  remove_menu_page('wpcf7');//plug-in contact form7
// remove_menu_page('options-general.php'); // 設定
// remove_menu_page('profile.php'); // プロフィール(管理者以外のユーザー用)
}
add_action('admin_menu', 'remove_menus');
}

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

上の例でいくと、例えば、「ユーザー」も非表示にしたいなら、

// remove_menu_page('users.php'); // ユーザー

  ↓

 remove_menu_page('users.php'); // ユーザー

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

 

プラグインでアドミンバー(上)追加されたメニューを非表示にする方法

プラグインで追加されたメニューを削除するための引数(例えば、wpcf7 みたいな)を確認したいのであれば、

管理バーに追加されたメニューの場合は

global $wp_admin_bar;

の直後に

var_dump( $wp_admin_bar );

と記入したら見えるので、確認できる。

なお、サイドに追加されたメニューの場合は、別途

global $menu;
var_dump( $menu );

と記入。

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

<管理バーに追加されたメニューのID確認>
functions.phpへ

function check_adminbar_id() {
    global $wp_admin_bar;

    var_dump($wp_admin_bar);
}
add_action( 'admin_menu', 'check_adminbar_id' );

<サイドに追加されたメニューのID確認>
functions.phpへ

function check_sidemenu_id() {
global $menu;
var_dump( $menu );
}
add_action( 'admin_menu', 'check_sidemenu_id' );

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

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

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

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

引数が分かれば、

remove_menu_page('調べた引数');

で非表示にできる。

WordPress BuddyPressカスタマイズメモ 個別記事ページのコメントの編集ボタンを削除

ログイン中でもコメント編集ボタンを非表示

<追加したい機能>

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

管理者以外では、編集者や投稿者であってもコメントの編集権限を剥奪したい。

ただし、自分自身のコメントの編集権は残したいので、全ての権限を剥奪はしない。

管理画面だけでなく、サイトフロントからも編集できるので、この「編集」リンクを削除する。
 

functions.php へ記述

//個別記事ページのコメント編集ボタンを削除

if (!current_user_can('administrator')) {
  add_filter( 'edit_comment_link', '__return_false');
}

管理者でも編集権を剥奪したいのであれば、

if (!current_user_can('administrator')) {

}

を消して、中の1行だけを記述しておけばOK。

WordPress BuddyPressカスタマイズメモ ログイン直後に管理画面ではなくサイトフロントへ飛ばす

WordPressでログイン直後に管理画面ではなく、トップページへ飛ばす方法

<追加したい機能>

WordPressのSNSプラグイン、BuddyPressのメンバーは、管理画面からだけでなく、サイトフロント(トップページとか)のログインウィジェットからログインする場合もある。

なので、ログイン後に管理画面に飛ばさず、そのままホームぺージ(サイトフロント)にとどまってもらいたい。
 

functions.php へ記述

//ログイン後もサイトフロントへ飛ばす

function login_redirect_page() {
 return home_url();
}
add_filter('login_redirect', 'login_redirect_page');

これで、login_redirect のフィルターに home_url を返すように設定するだけでいい。

なお、一般ユーザーではなく、管理者は管理画面に直接飛ばしたい場合は、

if ( ! current_user_can( 'administrator' ) ) {

}

で全体を囲めばOK。