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のパスとファイル名を記入しておくこと。