WordPress. Форма входу в адмінку

Опубліковано 16 січня 2010 року в категорії WordPress, Своїми руками, Хаки / прокоментуй!

Завдання вивести блок авторизації/реєстрації користувачів WordPress в будь-яке місце вашого шаблона.
Після після проведеної роботи у нас вийде форма авторизації для не авторизованих користувачів (рис. зліва) і для авторизованих (рис. справа):

login-1login-2


    1. Форма коли ми не увійшли під своїм логіно;
    2. Форма коли ми залогінились.

У формі має бути:

    1. Поле для введення імені користувача;
    2. Поле для пароля;
    3. Галочка для запам’ятовування пароля;
    4. Приховане поле, яке повідомить Вордпресс, куди перенаправити користувача після авторизації;
    5. Кнопку відправки даних;
    6. Два посилання, одне для реєстрації, інше для відновлення пароля.

Оскільки наша форм має працювати в будь-якому шаблоні, ми будемо використовувати функцію get_option ( 'home'), яка отримує повний шлях, до папки в якій встановлено WordPress.

<h3>Login</h3>
<form action="&lt;?php echo get_option('home'); ?&gt;/wp-login.php" method="post">
 
<label for="log">User</label>
<input id="log" name="log" size="20" type="text" value="&lt;?php echo wp_specialchars(stripslashes($user_login), 1) ?&gt;" /> 
 
<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="&lt;?php echo $_SERVER['REQUEST_URI']; ?&gt;" />
 
</form>
 
<a href="&lt;?php echo get_option('home'); ?&gt;/wp-register.php">Register</a>
<a href="&lt;?php echo get_option('home'); ?&gt;/wp-login.php?action=lostpassword">Recover password</a>

У приховане поле, ми помістили URL сторінки, з якої логін користувача, так що після авторизації, він знову буде спрямований на цю сторінку.

Для того, щоб показувати форму входу/реєстрації, тільки неавторизованих користувачів, ми скористаємося функцією current_user_can (), з параметром level_0.

    //код вказаний вище

Остання що залишилося зробити, це написати код, для авторизованого користувача, наступний після else.

<ul class="admin_box">
	<li><a href="&lt;?php echo get_option('home'); ?&gt;/wp-admin/">Dashboard</a></li>
	<li><a href="&lt;?php echo get_option('home'); ?&gt;/wp-admin/post-new.php">Write new Post</a></li>
	<li><a href="&lt;?php echo get_option('home'); ?&gt;/wp-admin/page-new.php">Write new Page</a></li>
	<li><a href="&lt;?php echo get_option('home'); ?&gt;/wp-login.php?action=logout&amp;redirect_to=&lt;?php echo urlencode($_SERVER['REQUEST_URI']) ?&gt;">Log out</a></li>
</ul>

У результаті у нас вийшов ось такий код, і вам залишається тільки скопіювати його і вставити в будь-якому місці вашого шаблону:

<h3>Login</h3>
<form action="&lt;?php echo get_option('home'); ?&gt;/wp-login.php" method="post">
 
<label for="log">User</label>
<input id="log" name="log" size="20" type="text" value="&lt;?php echo wp_specialchars(stripslashes($user_login), 1) ?&gt;" /> 
 
<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="&lt;?php echo $_SERVER['REQUEST_URI']; ?&gt;" />
 
</form>
 
<a href="&lt;?php echo get_option('home'); ?&gt;/wp-register.php">Register</a>
<a href="&lt;?php echo get_option('home'); ?&gt;/wp-login.php?action=lostpassword">Recover password</a>
<ul class="admin_box">
	<li><a href="&lt;?php echo get_option('home'); ?&gt;/wp-admin/">Dashboard</a></li>
	<li><a href="&lt;?php echo get_option('home'); ?&gt;/wp-admin/post-new.php">Write new Post</a></li>
	<li><a href="&lt;?php echo get_option('home'); ?&gt;/wp-admin/page-new.php">Write new Page</a></li>
	<li><a href="&lt;?php echo get_option('home'); ?&gt;/wp-login.php?action=logout&amp;redirect_to=&lt;?php echo urlencode($_SERVER['REQUEST_URI']) ?&gt;">Log out</a></li>
</ul>

Оригінал статті. (Eng.)

Поділись з ближнім:

Залишіть коментар

Поля позначені червоною зірочкою * є обов’язковими для заповнення!