После входа в систему блога WordPress (т.е. после идентификации посетителя) вы попадаете в админку, а после выхода - на страницу входа? Такое поведение в блоге не всегда оправдано. Рассмотрим, как сделать так, чтобы после входа или выхода посетитель возвращался на текущую страницу.
Использование wp_loginout
В боковом меню, т.е. в файле sidebar.php используется функция wp_loginout, которая выводит ссылку “Войти” или, если посетитель уже вошел в систему, ссылку “Выйти”:
<ul> ... <li><?php wp_loginout(); ?></li> </ul>
Для того чтобы после входа/выхода посетитель оказался на текущей странице, нужно указать необязательный аргумент $redirect, который задает URL для перенаправления после входа/выхода (этот параметр доступен, начиная с версии WordPress 2.8):
<ul> ... <li><?php wp_loginout($_SERVER['REQUEST_URI']); ?></li> </ul>
Форма входа в боковом меню
Если идти еще дальше, можно разместить форму входа прямо в боковом меню. Возврат к текущей странице обеспечивает использование аргумента $redirect
<?php //form start global $user_ID, $user_identity; get_currentuserinfo(); $redirect=$_SERVER['REQUEST_URI']; if (!$user_ID): ?> <h3>Вход</h3> <form action="<?php echo get_option('home'); ?>/wp-login.php" method="post"> <p><label for="log">Логин</label><br /> <input type="text" name="log" id="log" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" size="20" /> </p> <p><label for="pwd">Пароль</label><br /><input type="password" name="pwd" id="pwd" size="20" /></p> <p><input type="submit" name="submit" value="Войти" /></p> <p><label for="rememberme"><input name="rememberme" id="rememberme" type="checkbox" checked="checked" value="forever" /> запомнить</label></p <p><input type="hidden" name="redirect_to" value="<?php echo $redirect; ?>" /></p> </form> <p><a href="<?php echo wp_lostpassword_url( $redirect ); ?>">Забыли пароль?</a></p> <p><?php wp_register('', ''); ?></p> <?php else: ?> <h3><?php echo "<br/>Вы вошли как " . $user_identity; ?></h3> <ul> <?php wp_register(); ?> <li><a href="<?php echo wp_logout_url( $redirect ); ?>">Выйти</a></li> </ul> <?php endif; // form end ?>
Описание функций, используемых при входе в систему блога на WordPress