WordPress. Форма входу в адмінку
Завдання вивести блок авторизації/реєстрації користувачів WordPress в будь-яке місце вашого шаблона.
Після після проведеної роботи у нас вийде форма авторизації для не авторизованих користувачів (рис. зліва) і для авторизованих (рис. справа):
- Форма коли ми не увійшли під своїм логіно;
- Форма коли ми залогінились.
У формі має бути:
- Поле для введення імені користувача;
- Поле для пароля;
- Галочка для запам’ятовування пароля;
- Приховане поле, яке повідомить Вордпресс, куди перенаправити користувача після авторизації;
- Кнопку відправки даних;
- Два посилання, одне для реєстрації, інше для відновлення пароля.
Оскільки наша форм має працювати в будь-якому шаблоні, ми будемо використовувати функцію get_option ( 'home'), яка отримує повний шлях, до папки в якій встановлено WordPress.
<h3>Login</h3> <form action="<?php echo get_option('home'); ?>/wp-login.php" method="post"> <label for="log">User</label> <input id="log" name="log" size="20" type="text" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" /> <label for="pwd">Password</label> <input id="pwd" name="pwd" size="20" type="password" /> <input class="button" name="submit" type="submit" value="Send" /> <label for="rememberme"> <input id="rememberme" checked="checked" name="rememberme" type="checkbox" value="forever" /> Remember me</label> <input name="redirect_to" type="hidden" value="<?php echo $_SERVER['REQUEST_URI']; ?>" /> </form> <a href="<?php echo get_option('home'); ?>/wp-register.php">Register</a> <a href="<?php echo get_option('home'); ?>/wp-login.php?action=lostpassword">Recover password</a>
У приховане поле, ми помістили URL сторінки, з якої логін користувача, так що після авторизації, він знову буде спрямований на цю сторінку.
Для того, щоб показувати форму входу/реєстрації, тільки неавторизованих користувачів, ми скористаємося функцією current_user_can (), з параметром level_0.
//код вказаний вищеОстання що залишилося зробити, це написати код, для авторизованого користувача, наступний після else.
<ul class="admin_box"> <li><a href="<?php echo get_option('home'); ?>/wp-admin/">Dashboard</a></li> <li><a href="<?php echo get_option('home'); ?>/wp-admin/post-new.php">Write new Post</a></li> <li><a href="<?php echo get_option('home'); ?>/wp-admin/page-new.php">Write new Page</a></li> <li><a href="<?php echo get_option('home'); ?>/wp-login.php?action=logout&redirect_to=<?php echo urlencode($_SERVER['REQUEST_URI']) ?>">Log out</a></li> </ul>
У результаті у нас вийшов ось такий код, і вам залишається тільки скопіювати його і вставити в будь-якому місці вашого шаблону:
<h3>Login</h3> <form action="<?php echo get_option('home'); ?>/wp-login.php" method="post"> <label for="log">User</label> <input id="log" name="log" size="20" type="text" value="<?php echo wp_specialchars(stripslashes($user_login), 1) ?>" /> <label for="pwd">Password</label> <input id="pwd" name="pwd" size="20" type="password" /> <input class="button" name="submit" type="submit" value="Send" /> <label for="rememberme"> <input id="rememberme" checked="checked" name="rememberme" type="checkbox" value="forever" /> Remember me</label> <input name="redirect_to" type="hidden" value="<?php echo $_SERVER['REQUEST_URI']; ?>" /> </form> <a href="<?php echo get_option('home'); ?>/wp-register.php">Register</a> <a href="<?php echo get_option('home'); ?>/wp-login.php?action=lostpassword">Recover password</a> <ul class="admin_box"> <li><a href="<?php echo get_option('home'); ?>/wp-admin/">Dashboard</a></li> <li><a href="<?php echo get_option('home'); ?>/wp-admin/post-new.php">Write new Post</a></li> <li><a href="<?php echo get_option('home'); ?>/wp-admin/page-new.php">Write new Page</a></li> <li><a href="<?php echo get_option('home'); ?>/wp-login.php?action=logout&redirect_to=<?php echo urlencode($_SERVER['REQUEST_URI']) ?>">Log out</a></li> </ul>

