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

Last Updated: 2022 年 07 月 20 日 댓글
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 メニューへのログイン/ログアウトメニュー項目を追加する方法 文を参考にしてください。


コメントを残す

コメント