Для вывода формы регистрации или авторизации в произвольном месте WordPress, можно использовать шорткоды, виджеты или прямо встроить код в файлы темы. Вот несколько способов:
1. Использование плагина
Самый простой способ – воспользоваться плагином, например, User Registration, WPForms, или Theme My Login. Эти плагины предлагают шорткоды, которые можно вставить в нужное место на сайте.
[theme-my-login]
2. Вывод формы через встроенные функции WordPress
Если вы хотите обойтись без плагинов, можно использовать встроенные функции WordPress для отображения форм.
Авторизация
Вывести форму авторизации можно с помощью функции wp_login_form():
<?php
wp_login_form(array(
'redirect' => home_url(), // URL, куда перенаправлять после авторизации
));
?>
Пример шорткода:
function custom_login_form_shortcode() {
ob_start();
wp_login_form(array(
'redirect' => home_url(),
));
return ob_get_clean();
}
add_shortcode('custom_login_form', 'custom_login_form_shortcode');
Вставьте [custom_login_form] в текстовый редактор WordPress.
Регистрация
Для формы регистрации используйте:
<?php
echo '<form method="post" action="' . esc_url(site_url('wp-login.php?action=register', 'login_post')) . '">';
echo '<p><label for="user_login">Имя пользователя</label><br>';
echo '<input type="text" name="user_login" id="user_login"></p>';
echo '<p><label for="user_email">Email</label><br>';
echo '<input type="email" name="user_email" id="user_email"></p>';
echo '<p><input type="submit" value="Зарегистрироваться"></p>';
echo '</form>';
?>
3. Добавление в нужное место через PHP-код
Если требуется вывод в шаблоне темы, добавьте соответствующий код в файл (например, header.php, page.php или sidebar.php):
<?php if (!is_user_logged_in()): ?>
<div class="custom-login-form">
<?php wp_login_form(); ?>
</div>
<?php endif; ?>
4. Использование виджетов
Если место в теме поддерживает виджеты, можно добавить «Meta» виджет, но он включает много лишнего. Для кастомного вывода лучше использовать шорткод (см. выше) через текстовый виджет.
5. Кастомизация форм
Обе формы можно стилизовать с помощью CSS или переопределить стандартные шаблоны.
Пример стиля для wp_login_form:
.custom-login-form form {
max-width: 300px;
margin: 0 auto;
padding: 15px;
border: 1px solid #ddd;
border-radius: 5px;
background-color: #f9f9f9;
}
.custom-login-form input {
width: 100%;
margin-bottom: 10px;
padding: 10px;
}
Выберите метод, который подходит вашему проекту, и настройте под ваши требования!
















