以下のコードを使用してフロントエンド ログインを許可しています。ログインしているかどうかに応じて、異なるメニューが表示されます。
私が抱えている問題は、ユーザーがログインをクリックして別のページにリダイレクトされると、そこに表示されるメニューは正しいが、別のページをクリックすると、ログアウトしていなくても「ログインしていない」メニューに戻ることですボタンがクリックされました。
<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
<p>
<label for="user_login">
<?php _e('Username') ?>
<br />
<input type="text" name="log" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" tabindex="10" />
</label>
</p>
<p>
<label for="user_pass">
<?php _e('Password') ?>
<br />
<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20" />
</label>
</p>
<?php do_action('login_form'); ?>
<p class="forgetmenot">
<label for="rememberme">
<input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90"<?php checked( $rememberme ); ?> />
<?php esc_attr_e('Remember Me'); ?>
</label>
</p>
<p class="submit">
<input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php esc_attr_e('Log In'); ?>" tabindex="100" />
<?php if ( $interim_login ) { ?>
<input type="hidden" name="interim-login" value="1" />
<?php } else { ?>
<input type="hidden" name="redirect_to" value="<?php bloginfo('url'); ?>/dashboard" />
<?php } ?>
<input type="hidden" name="testcookie" value="1" />
</p>
</form>
以下のコードは、ログインしているかログアウトしているかに応じて異なるメニューを表示するために、メニューの周りで使用しているものです。
<?php if ( is_user_logged_in() ) {
} else {
} ?>
ログインすると、セッションが破棄されているように見えます。最初は保存されますが、他のリンクをクリックするとセッションが破棄されます。