Практически каждая современная система управления сайтом имеет встроенный набор функций и компонентов для регистрации и авторизации. Аналогично и WordPress имеет несколько полезных функций для этого.
В этой статье мы лишь поверхностно рассмотрим тему авторизации и управления её: функции для вывода ссылок и формы. Не будем вдаваться в подробности форм и скриптов-обработчиков. А именно, рассмотрим следующие функции:
- wp_login_form - выводит HTML формы авторизации
- wp_register - выводит ссылку на раздел администрирования для авторизованных и ссылку для регистрации неавторизованным пользователям
- wp_loginout - выводит ссылку "входа" для неавторизованных и "выхода" для авторизованных пользователей
- wp_logout_url - возвращает адрес страницы для выхода с сайта
- wp_login_url - возвращает адрес страницы с формой авторизации
- wp_registration_url - возвращает адрес страницы с формой регистрации
Вывод формы для авторизации/регистрации
Функция "wp_login_form" выводит форму для авторизации и регистрации. У функции есть только один аргумент, в который необходимо передавать массив с параметрами:
wp_login_form( $args );
Рассмотрим ключи и значения массива "$args":
Название |
Тип |
Описание |
echo |
логический |
Выводить или нет на экран. По умолчанию: true |
redirect |
строка |
Адрес страницы, на который будет переадресован пользователь после авторизации. По умолчанию: текущая страница |
form_id |
строка |
id атрибут тега <form id="loginform">. По умолчанию: 'loginform' |
label_username |
строка |
Текст заголовка поля "имя пользователя". По умолчанию: __( 'Username' )' |
label_password |
строка |
Текст заголовка поля "пароль". По умолчанию: '__( 'Password' )' |
label_remember |
строка |
Текст заголовка поля "запомнить меня". По умолчанию: '__( 'Remember Me' )' |
label_log_in |
строка |
Текст на кнопке отправки формы. По умолчанию: '__( 'Log In' )' |
id_username |
строка |
Значение атрибута id: <input id="user_login" />. По умолчанию: 'user_login' |
id_password |
строка |
Значение атрибута id: <input id="user_login" />. По умолчанию: 'user_pass' |
id_remember |
строка |
Значение атрибута id: <input id="user_login" />. По умолчанию: 'rememberme' |
id_submit |
строка |
Значение атрибута id: <input id="user_login" />. По умолчанию: 'wp-submit' |
remember |
логический |
Запоминать ли введённые значения полей. По умолчанию: true (запоминать) |
value_username |
строка |
Предустановленное имя пользователя. По умолчанию: '' |
value_remember |
строка |
Значение атрибута value поля "запомнить меня". По умолчанию 1 - галка стоит. 0 - галочка не стоит. По умолчанию: 1 |
Приведём пример использования этой функции:
$args = array(
'echo' => true,
'redirect' => site_url( $_SERVER['REQUEST_URI'] ),
'form_id' => 'loginform',
'label_username' => __( 'Username' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Remember Me' ),
'label_log_in' => __( 'Log In' ),
'id_username' => 'user_login',
'id_password' => 'user_pass',
'id_remember' => 'rememberme',
'id_submit' => 'wp-submit',
'remember' => true,
'value_username' => NULL,
'value_remember' => false
);
wp_login_form( $args );
Вывод формы для авторизации/регистрации
Одной из востребованных функций WordPress является "wp_register". Эта функция выводит ссылку на панель администрирования для авторизованных пользователей и ссылку на форму регистрации для неавторизованных. Ссылка выводится с обрамлением в виде тегов, которые можно переопределить через аргументы. Рассмотрим функцию и аргументы подробнее:
wp_register( $before, $after, $echo );
Название |
Тип |
Описание |
$before |
строка |
Текст до ссылки. По умолчанию: <li> |
$after |
строка |
Текст после ссылки. По умолчанию: </li> |
$echo |
логический |
Распечатывать ли ссылку или возвращать HTML код в переменную для дальнейшей обработки. По умолчанию: true (распечатывать) |
Как можно догадаться из описания параметров, чтобы распечатать чистую HTML ссылку достаточно выполнить такой код (первый и второй аргумент равны пустой строке):
wp_register('', '');
Ссылка для входа и выхода
Функция "wp_loginout" выводит ссылку для "входа" для неавторизованных пользователей и "выхода" для авторизованных. У функции есть всего два аргумента:
wp_loginout( $redirect, $echo );
Название |
Тип |
Описание |
$redirect |
строка |
Адрес страницы, куда надо перейти после входа или выхода. По умолчанию: "" (пустая строка) |
$echo |
логический |
Распечатывать ли ссылку или возвращать HTML код в переменную для дальнейшей обработки. По умолчанию: true (распечатывать) |
Ссылка для регистрации, входа и выхода
Чтобы не запоминать адреса страниц для входа/ выхода и регистрации на сайте, можно воспользоваться тремя функциями. Обсудим их.
Для получения адреса страницы с формой авторизации используйте функцию "wp_login_url". Эта функция распечатает ссылку для входа. Если пользователь кликнет на неё, то он попадёт на форму авторизации "/wp-login.php" :
wp_login_url( $redirect, $force_reauth );
У функции есть два параметра:
Название |
Тип |
Описание |
$redirect |
строка |
Адрес страницы, куда надо отправить пользователя после выхода. По умолчанию: "" (та же самая страница) |
$force_reauth |
логический |
Нужно ли сделать принудительную переавторизацию, даже если куки авторизации уже установлены). По умолчанию: false (не нужно) |
Пример использования:
<a href="<?php echo wp_login_url(); ?>" title="Войти">Войти</a>
Чтобы получить адрес страницы для выхода с сайта используйте функцию "wp_logout_url". Эта функция распечатает ссылку для выхода. Если пользователь кликнет на неё, то он выйдет из своей учётной записи:
wp_logout_url( $redirect );
У функции есть два параметра:
Название |
Тип |
Описание |
$redirect |
строка |
Адрес страницы, куда надо отправить пользователя после выхода. По умолчанию: "" (та же самая страница) |
Пример использования:
<a href="<?php echo wp_logout_url(); ?>" title="Выйти">Выйти</a>
Последней в этой статье мы обсудим функцию "wp_registration_url", которая возвращает адрес страницы с формой регистрации:
wp_registration_url();
У этой функции нет аргументов. Она лизвращает строку, URL адрес страницы ("wp-login.php?action=register"). Функция будет возвращать ссылку даже если пользователь уже авторизован.
Пример использования функции:
<a href="<?php echo wp_registration_url(); ?>">Форма регистрации</a>