「スマホ・パソコン・Web関連」カテゴリーアーカイブ

ログイン時のみ一部メニューを非表示に(ログインしてる時だけ違うCSSを読み込ませてメニューを表示させる方法) WordPress BuddyPressカスタマイズメモ

WordPressで、ログインしてる人と、ログインしてない人で違うメニューを表示させる方法

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

ログイン後にのみCSSを読み込ませて、デザインや配置、表示非表示を切り替えたい場合など。


  ↓↓↓

 

メニューで、非ログイン時に非表示にするものにclass付けする

管理画面の「メニュー」で、「表示オプション」の中の「CSSクラス」のチェックボックスにチェックを入れる。

CSS class(オプション)の部分に、ログイン後非表示にしたいモノにだけ「loggedin」と書いておく。

ちなみに、class名は何でもいい。

 

functions.php へ記述

//ログイン時のみCSS適用

function loggedin_css() {
if ( ! is_user_logged_in() ) :
echo '<style type="text/css">li.loggedin {display: none;}</style>';
endif;
}
add_action( 'wp_head', 'loggedin_css');
if (!is_user_logged_in())

で、ログインしているユーザーにだけ、スタイルを読み込ませる。

ちなみに、この例では外部CSSではないが、下記のように外部CSSにして読み込ませても同じことができる。

function loggedin_css() {
if ( ! is_user_logged_in() ) :
echo '<link rel="stylesheet" type="text/css" href="https://..../xxx.css">';
endif;
}
add_action( 'wp_head', 'loggedin_css');

https://…./xxx.css の部分にCSSのパスとファイル名を記入しておくこと。

管理画面でだけ適用するCSSファイルを作って、子テーマ化する WordPress BuddyPressカスタマイズメモ

WordPressの管理画面でだけCSSファイルを読み込ませる方法

 
WordPressのSNSプラグイン、BuddyPressを導入すると不特定多数のメンバーが参加することになるので、管理画面の配置や色を変更したい場合、非表示したいものなどがある場合に、スタイルシートを使いたい場合もあるだろう。

色々と方法はあるが、今回は外部CSSファイルを子テーマに入れて、管理画面で読み込ませる方法を紹介。


 

functions.php へ記述

//adminのCSSを子テーマに追加

function load_custom_wp_admin_style() {
	wp_enqueue_style( 'custom_wp_admin_css', get_stylesheet_directory_uri() . '/css/adminstyle.css', false, '1.0.0' );
}
add_action( 'admin_enqueue_scripts', 'load_custom_wp_admin_style' );

スタイルシートのパス

get_stylesheet_directory_uri()

この部分で、子テーマフォルダへのパスを表している。
スタイルシート名は、ここでは admin-style.css だ。

ダッシュボード画面(管理画面)の「アクティビティ」「クイックドラフト」などを非表示 WordPress BuddyPressカスタマイズメモ

管理画面で不要なパーツ(メタボックス)(クイックドラフト、News and Updates、WordPress イベントとニュース、ようこそ)を全部非表示にする方法

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

管理者以外には、Wordpressのニュース、WordPress イベント、ようこそ画面など(ダッシュボードのメタボックスと呼ぶ)は全部非表示にしておく。


   ↓↓↓

 

functions.php へ記述

//ダッシュボードの表示、非表示

if (!current_user_can('administrator')) {
function remove_dashboard_widgets() {
  global $wp_meta_boxes;
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);//現在の状況(概要)
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);//最近のコメント
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);//被リンク
  unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);//プラグイン
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);//クイックドラフト(クイック投稿)
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);//最近の下書き
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);//WordPressブログ
 unset($wp_meta_boxes['dashboard']['normal']['core']['jetpack_summary_widget']);//jetpack
  unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);//フォーラム
  //unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_activity']);//アクティビティ
}
add_action('wp_dashboard_setup', 'remove_dashboard_widgets' );

remove_action( 'welcome_panel', 'wp_welcome_panel' ); //ようこそ
}

初ログインした時に出てくる「ようこそ」だけは、単独でremove_actionで非表示にできる。

その他のメタボックスは1個ずつunsetしていくこと。

“管理者”でも非表示にする場合は、一番上と一番下の

if (!current_user_can('administrator')) {

}

を削除すればいい。

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

functions.phpへ

function check_post_label_id() {
    global $wp_meta_boxes;

    var_dump($wp_meta_boxes);
}
add_action( 'admin_menu', 'check_post_label_id' );

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

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

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

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

関連:WordPressの管理画面、ダッシュボードでオリジナルパーツ(独自メタボックス)を追加する方法