ログインすると、ログインメニューがログアウトメニューに切り替わるようにする(WordPress) - WordPress 情報パッケージ
ベストセラー人気 WordPress テーマTop 30 詳細

ログインすると、ログインメニューがログアウトメニューに切り替わるようにする(WordPress)

Last Updated:2022年7月20日| コメントを残す
  • Naver ブログを共有する
  • Naver バンドに共有する
  • Facebook 共有する
  • Twitter 共有する
  • 카카오스토리공유하기
Different Login and Logout screen in WordPress

WordPressでログインしていない場合(つまり、ゲストユーザーに)「ログイン」メニューを表示し、ログインしたユーザには、「ログイン」メニューのダッシュ "ログアウト"メニューを表示したい場合があります。

"ナビゲーションメニューの役割」というプラグインを使用すると、メニュー項目をログインするかどうか、または役割(会員ランク)に応じて異なって表示することができます。Nav Menu Rolesをインストールして、ダウンロードした後、メニュー項目を追加すると、各メニュー項目には、次の図のようなオプションが追加さで生成されます。

ログインすると、ログインメニューがログアウトメニューに切り替わるようにする方法

Nav Menu Roles Options in WordPress
  • Logged Out Users - ログアウトユーザー(つまり、ゲストユーザー)にのみ表示されます。
  • Logged In Users - ログインしているユーザーにのみ表示されます。
  • By Role - 役割(会員ランク)ごとに表示を制御することができます。

ゲストユーザーにのみ、「ログイン」メニューを表示

For Logged Out Users in WordPress WordPress ログアウトユーザーに表示するメニュー項目


メニュー項目を "ユーザー定義のリンク"として指定し、URLに"http://사이트주소/wp-login.php"を入力します。そして、 ディスプレイモードで "Logged Out Users"を選択します。(ユーザー定義のリンクを使用する方法は、 ここを参照してください。)

ログインユーザーのみ "ログアウト"メニューを表示

For Logged In Users in WordPress WordPress ログインユーザーに表示するメニュー項目


メニュー項目を "ユーザー定義のリンク"として指定し、URLに"http://사이트주소/wp-login.php?action=logout&redirect_to=리디렉션주소"の形式で入力します(たとえば、http://www.abc.com/wp-login.php?action=logout&redirect_to=http://www.abc.com/)。そして、 ディスプレイモードで "ユーザーでログイン"を選択します。

メニュー変更を保存すると、ゲストユーザはログインメニューが表示され、ログインしたユーザーには、ログアウトメニューが表示されます。

ログイン時にホームページにリダイレクト

ログイン後のホームページにリダイレクトさせるには、次の関数を使用します。

function redirect_home( $redirect_to, $request, $user )
{
return home_url();
}
add_filter( 'login_redirect', 'redirect_home' );
(Source: http://www.paulund.co.uk/)

プラグインを使用せずにログイン/ログアウトユーザーに別のメニューを表示する

プラグインを使用せずにログインユーザーとログアウトユーザー(ゲスト)に異なるメニューを表示したい場合は、次の方法も可能です。

  1. ログインユーザーに表示するメニュー(logged-inなど)と、ログアウトユーザーに表示するメニュー(logged-outなど)を作成します。
  2. コードを使用して、ログインユーザーには logged-in メニューを、ログアウトユーザーには logged-out メニューを表示させます。

メニューは ルックス>メニューで作ることができます。 ログインユーザーとログアウトユーザーに表示するメニューをそれぞれ作成します。

次に、次のコードをテーマの関数ファイルに追加します。

// 조건부 내비게이션 메뉴, Conditional Nav Menu

function wpc_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in() ) { 
    $args['menu'] = 'logged-in';
} else { 
    $args['menu'] = 'logged-out';
} 
    return $args;
}
add_filter( 'wp_nav_menu_args', 'wpc_wp_nav_menu_args' );

テーマが生成する特定のメニュー位置にメニューを表示する場合は、次のコードでテストしてください。

// 특정 테마 위치의 메뉴에 대하여 로그인 ユーザー와 비로그인 ユーザー에게 다른 메뉴 표시하기, Conditional Nav Menu for a specifical Menu Location

function wpc_wp_nav_menu_args( $args = '' ) {
if( is_user_logged_in()) { 
  	if( 'top-navigation' == $args['theme_location'] ) { // top-navigation은 해당 테마의 테마 위치 이름으로 변경해주세요
	    $args['menu'] = 'logged-in';
	}
} else { 
	if( 'top-navigation' == $args['theme_location'] ) { // 마찬가지로 top-navigation은 해당 테마의 테마 위치 이름으로 변경해주세요
	    $args['menu'] = 'logged-out';
	}
} 
    return $args;
}
add_filter( 'wp_nav_menu_args', 'wpc_wp_nav_menu_args' );

参照

上では プラグインを使用してログインすると、メニューがログアウトに変える方法を説明しています。 しかし、 プラグインを使用せずにログイン/ログアウトメニューがログイン状態に応じて表示されるようにすることもできます。 この方法は、 WordPress メニューへのログイン/ログアウトメニュー項目を追加する方法 文を参考にしてください。



コメントを残す

コメント