我使用下面的代码来允许前端登录,然后我有一个不同的菜单,具体取决于他们是否登录。
我遇到的问题是,一旦用户单击登录并且他们被重定向到另一个页面,那里显示的菜单是正确的,但是当他们单击另一个页面时,即使没有注销,它也会恢复到“未登录”菜单按钮已被点击。
<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 {
} ?>
看起来会话一旦登录就会被破坏。它最初会保存它,但单击任何其他链接都会破坏会话!