「WordPress」カテゴリーアーカイブ

管理画面のユーザー/プロフィールの項目でいらない部分を消す WordPress BuddyPressカスタマイズメモ

管理画面のユーザー/プロフィールの項目で「姓」「名」などのいらない部分を非表示にしたり、変更したりする

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

できるだけシンプルにしたい。

Sangoテンプレートを使っていると、 TwitterのURL、FacebookのURL、InstagramのURL、肩書
なども追加されるので、それを一旦削除して上書きしたりする。
 

functions.php へ記述

普通に子テーマの functions.php に書いても、親テーマの functions.php で上書きされてしまう。

add_action の after_setup_thmem で、親テーマの functions.php の sango の追加項目の、TwitterのURL、FacebookのURL、InstagramのURL、肩書あたりを一旦削除しておく。

Sangoで追加されるプロフィールを変更したり、削除したりしなくていい場合はこれは不要。

//管理画面のプロフィールのsangoの追加項目を一旦削除

function remove_sango_add_user_contactmethods()
{
 remove_filter('user_contactmethods', 'add_user_contactmethods');
}
add_action( 'after_setup_theme', 'remove_sango_add_user_contactmethods' );

 

「ユーザー」→「あなたのプロフィール」で表示されている項目は、そのままremoveできないので、CSSで非表示にするしかない。

//管理画面のプロフィールでいらない部分を消す

function user_profile_hide_style() {
  echo '<style>
  #your-profile .user-rich-editing-wrap, /* ビジュアルエディター */
  #your-profile .user-comment-shortcuts-wrap, /* キーボードショートカット */
  #your-profile .show-admin-bar, /* ツールバー */
  #your-profile .user-first-name-wrap, /* 名 */
  #your-profile .user-last-name-wrap, /* 姓 */
  #your-profile .user-profile-picture, /* プロフィール写真 */
  #your-profile .user-sessions-wrap /* セッション */ {
    display: none;
  }
  </style>'.PHP_EOL;
}
add_action('admin_print_styles', 'user_profile_hide_style');

 

続いて、Sango で追加されるプロフィールを再度追加。

不要なモノがあればコメントアウトする。

ここでは、FeedlyのURL が不要なので // でコメントアウトしている。

yourtitle は Sango では「肩書」だが、「出身地」に変更している。

//プロフィールの肩書の部分を「出身地」に変更

function yuya_add_profile($user_contactmethods)
{
 return array(
 'yourtitle' => '出身地',
 'twitter' => 'TwitterのURL',
 'facebook' => 'FacebookのURL',
 'instagram' => 'InstagramのURL',
 //'feedly' => 'FeedlyのURL',
 'youtube' => 'YouTubeのURL',
 'line' => 'LINEのURL',
 );
}
add_filter('user_contactmethods', 'yuya_add_profile');

ログイン時のみ一部メニューを非表示に(ログインしてる時だけ違う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のパスとファイル名を記入しておくこと。