Как настроить вход в админку WordPress по email адресу
Опубликовано: 24.08.2018
По-умолчанию, WordPress назначает уникальные имена пользователей для всех пользователей, зарегистрированных на сайте. В виду того, что имена уникальны, существует вероятность того, что логин, который пользователь захочет использовать, будет уже занят, и ему придется выбрать себе другой логин, который он может и не запомнить. Если он не запомнит свое имя пользователя, то ему будет сложно залогиниться в систему. Сегодняшний сниппет поможет вам настроить вход в админку для пользователей по их email, привязанному к аккаунту.
Как изменить адрес страницы для входа в Wordpress
Мы будем использовать действие wp_authenticate , которое выполняет прежде, чем WordPress аутентифицирует пользователя, и здесь мы сможем изменить имя пользователя и пароль, отправленный пользователем.
Внутри этой функции, когда мы возьмем $username (имя пользователя, отправленное нам формой логина), мы затем обработаем это значение и выполним поиск email пользователя. Если вернется пользователь как объект, мы подменим логин на имя пользователя из найденного объекта пользователя.
Как сделать двойной вход в админку блога WordPress?
add_action( 'wp_authenticate', 'email_address_login' ); function email_address_login( &$username, &$password ) { $user = get_user_by( 'email', $username ); if( !empty( $user->user_login ) ) { $username = $user->user_login; } }
Важно отметить, что это срабатывает по-другому с другими WordPress действиями путем отправки параметров в качестве ссылки. Что означает, что это действие лучше сработает в коде ядра в виде фильтра, так как оно требует передачи параметров, изменения значений и их возврата.
Так как это — действие, оно обрабатывает параметры, определенные амперсандом в списке параметров функций. Это означает, что вам не нужно возвращать какие-либо значения из этой функции, а просто нужно изменить значения переменных и они автоматически будут возвращены функцией.
Вы можете посмотреть, как это работает в WordPress, заглянув в код ядра в месте выполнения wp_authenticate .
Внутри файла /wp-includes/user.php в строке 54 вы увидите следующий код:
do_action_ref_array( 'wp_authenticate', array( &$credentials['user_login'], &$credentials['user_password'] ) );Обычно, когда вызывается действие, оно использует функцию do_action() , однако наше — использует функцию do_action_ref_array() и обрабатывает значения в качестве ссылки.
Мы надеемся, что эта статья помогла вам настроить для ваших пользователей возможность входа на сайт WordPress по email адресу.
По всем вопросам и отзывам просьба писать в комментарии ниже.
Не забывайте, по возможности, оценивать понравившиеся записи количеством звездочек на ваше усмотрение.
VN:F [1.9.22_1171]
Rating: 0.0/ 5 (0 votes cast)
Сегодня | Завтра | ||
USD | 32.62 | 32.50 | |
EUR | 39.90 | 39.92 |
Обменник | Переходов |
Wmchanger | 6 |
E-Market | 5 |
WMtoCash.com | 4 |
Str-Money | 3 |
Hot-Change | 3 |
Вы можете получить WMR-бонус в размере 0,01-0,10 WMR на свой кошелек 1 раз в сутки | |
Кошелек
|
|
Код
|
|
Обмен Webmoney |