Skip to content

Culabra - Блог вебмастера

Статьи о программировании, новости в сфере веб, написание кода, разработка систем

  • Главная
  • Рубрики
    • Блог
    • Программирование
      • PHP
        • Изучение PHP
      • JavaScript & jQuery
      • HTML/CSS
    • Вебмастеру
      • Current Page Parent WordPress
      • DataLife Engine
    • SEO
    • PSD исходники
      • PSD макеты
      • Разные PSD
  • Портфолио
    • Персональный шаблон
    • Веб-дизайн
    • Верстка
    • Натяжка на CMS
    • Программирование
    • Прочее
  • Услуги
    • Персональный шаблон
    • Веб-Дизайн
    • Верстка
    • Натяжка на CMS
    • Прочие услуги
  • Контакты
  • Кто Я?
  • Главная
  • Рубрики
    • Блог
    • Программирование
      • PHP
        • Изучение PHP
      • JavaScript & jQuery
      • HTML/CSS
    • Вебмастеру
      • Current Page Parent WordPress
      • DataLife Engine
    • SEO
    • PSD исходники
      • PSD макеты
      • Разные PSD
  • Портфолио
    • Персональный шаблон
    • Веб-дизайн
    • Верстка
    • Натяжка на CMS
    • Программирование
    • Прочее
  • Услуги
    • Персональный шаблон
    • Веб-Дизайн
    • Верстка
    • Натяжка на CMS
    • Прочие услуги
  • Контакты
  • Кто Я?

Изменяем Регистрацию/Авторизацию/Восстановление пароля/Редактирование профиля в WordPress

  • 25.02.2017
  • Shnapik
  • WordPress
  • 1

Недавно загнался заменой стандартной страницы wp-login.php, появилось желание и необходимость её изменить достаточно радикально. Связано это было с тем, что после установки модуля магазина Woocommerce как вы знете появляется страница "Мой аккаунт" и там есть профиль пользователя, все настройки и как раз регистрация, авторизация и восстановление пароля. Собственно зачем мне эти функции в двух местах, пусть лучше будут в одном месте. Урок этот подойдет тем, кто хочет убрать все эти возможности там и сделать их на своих страницах сайта (внутри шаблона).

 

Цели данного урока:

  1. Скрыть регистрацию, авторизацию и восстановление пароля от стандартного wp-login.php
  2. Сделать свои страницы на сайте с регистрацией, авторизацией и восстановлением пароля

 

Всё достаточно просто тут казалось бы, есть куча плагинов для этих целей, ставим их и всё. Но, есть одно НО здесь. После установки подобных плагинов стандартная страница движка WordPress всё равно будет работать, а нам это не совсем нужно. С этим мы и будем бороться, а также мы разберем на примере более удобного плагина, создание страниц авторизации, регистрации и восстановления пароля.

 

Итак для начала выберем нужный плагин для дальнейшей работы.

Для создания страниц этих я могу порекомендовать использовать бесплатный плагин ля WordPress - User registration & user profile - Profile Builder. Что он нам даст? Достаточно обширный функционал по созданию своих страниц с регистрацией, авторизацией и восстановлением пароля. Плагин имеет гибкую настройку и вы можете создать формы под себя, на своем сайте (в вашем дизайне). Также помимо создания страниц с формами, вы можете использовать формы и в сайдбаре, в различных всплывающих окнах и т.п. Как вам удобнее. С этим плагином мы разобрались. Более подробную информацию вы можете найти на страницу плагина, а тут пока что будет только часть, самая необходимая нам.

 

Шорткоды (ShortCodes) плагина Profile Builder:

  • [wppb-login] – форма входа удобно для размещения на странице или сайдбаре.
  • [wppb-register] – создание формы регистрации пользователя.
  • [wppb-edit-profile] – редактирование профиля (для авторизованных пользователей).
  • [wppb-recover-password] – страница формы восстановления пароля.

 

Как видите всё достаточно просто, в настройки мы лезть пока что не будем, думаю с ними вы разберетесь сами, ну а если нет, то на страницу с плагином на сайте WordPress есть достаточно подробная и наглядная документация по настройке.

Как и всегда создаем страницы и выбираем в редакторе вкладку "Текст", далее вставляем нужный шорткод от плагина и сохраняем (создавайте разные страницы для каждого шорткода)... С этим собственно и всё, в итоге мы получаем 4 страницы (авторизация, регистрация, редактирование профиля, восстановление пароля). 

 

Уберем стандартные функции движка (уберем wp-login.php):

Теперь давайте скроем/уберем авторизацию и т.п. в файле wp-login.php. Он ведь нам теперь не к чему. Делать мы будем это с помощью обычных функций движка WordPress.

Почему так, а не иначе? Такой способ будет работать именно в той теме, в которой нам это нужно (при смене темы придется делать этот фокус еще раз). Мы не затрагиваем файлы движка, а это значит мы все также успешно сможем обновляться на новые версии движка, также и с плагинами и темами. Кроме того, данный способ будет успешно работать вне зависимости от сервера (Apache/Nginx). Я уже подготовил код, этот код я использую лично у себя в блоге. Давайте уже преступим.

Вставляем данный код в файл functions.php вашей темы:

 /*редирект с wp-login.php - авторизация, на страницу с формой авторизации*/
function redirect_login_page() {  
    $page_viewed = basename($_SERVER['REQUEST_URI']);  
 
    if( $page_viewed == "wp-login.php" ) {  
        wp_redirect( home_url('/login/') );  
        exit;  
    }  
}  
add_action('init','redirect_login_page');
 
 /*редирект с wp-login.php - регистрация, на страницу с формой регистрации*/
function redirect_register_page() {  
    $page_viewed = basename($_SERVER['REQUEST_URI']);  
 
    if( $page_viewed == "wp-login.php?action=register" ) {  
        wp_redirect( home_url('/register/') );  
        exit;  
    }  
}  
add_action('init','redirect_register_page');
 
 /*редирект с wp-login.php - восстановлене пароля, на страницу с формой восстановления пароля*/
function redirect_lostpassword_page() {  
    $page_viewed = basename($_SERVER['REQUEST_URI']);  
 
    if( $page_viewed == "wp-login.php?action=lostpassword" ) {  
        wp_redirect( home_url('/lostpassword/') );  
        exit;  
    }  
}  
add_action('init','redirect_lostpassword_page');
 
 /*редирект с wp-login.php - страница выхода, на главную страницу */
function redirect_logout_page() {  
    $page_viewed = basename($_SERVER['REQUEST_URI']);  
 
    if( $page_viewed == "wp-login.php?action=logout" ) {  
        wp_redirect( home_url('/') );  
        exit;  
    }  
}  
add_action('init','redirect_logout_page');
 
 /*редирект с wp-login.php - страница выхода, на главную страницу*/
function redirect_loggedout_page() {  
    $page_viewed = basename($_SERVER['REQUEST_URI']);  
 
    if( $page_viewed == "wp-login.php?loggedout=true" ) {  
        wp_redirect( home_url('/') );  
        exit;  
    }  
}  
add_action('init','redirect_loggedout_page');

/*редирект с wp-login.php - авторизация, на страницу с формой авторизации*/ function redirect_login_page() { $page_viewed = basename($_SERVER['REQUEST_URI']); if( $page_viewed == "wp-login.php" ) { wp_redirect( home_url('/login/') ); exit; } } add_action('init','redirect_login_page'); /*редирект с wp-login.php - регистрация, на страницу с формой регистрации*/ function redirect_register_page() { $page_viewed = basename($_SERVER['REQUEST_URI']); if( $page_viewed == "wp-login.php?action=register" ) { wp_redirect( home_url('/register/') ); exit; } } add_action('init','redirect_register_page'); /*редирект с wp-login.php - восстановлене пароля, на страницу с формой восстановления пароля*/ function redirect_lostpassword_page() { $page_viewed = basename($_SERVER['REQUEST_URI']); if( $page_viewed == "wp-login.php?action=lostpassword" ) { wp_redirect( home_url('/lostpassword/') ); exit; } } add_action('init','redirect_lostpassword_page'); /*редирект с wp-login.php - страница выхода, на главную страницу */ function redirect_logout_page() { $page_viewed = basename($_SERVER['REQUEST_URI']); if( $page_viewed == "wp-login.php?action=logout" ) { wp_redirect( home_url('/') ); exit; } } add_action('init','redirect_logout_page'); /*редирект с wp-login.php - страница выхода, на главную страницу*/ function redirect_loggedout_page() { $page_viewed = basename($_SERVER['REQUEST_URI']); if( $page_viewed == "wp-login.php?loggedout=true" ) { wp_redirect( home_url('/') ); exit; } } add_action('init','redirect_loggedout_page');

 

Как видите всё предельно просто и в целом понятно. Страницы для перенаправления можете использовать свои, со своими адресами. 

Вот собственно и весь трюк. Как и планировалось в задачах, мы скрыли страницу wp-login.php и создали свои страницы для работы с пользователям (авторизация, регистрация, восстановление пароля).

 

Альтернатива плагину Profile Builder и правкам functions.php:

Суть этой альтернативы заключается в следующем, мы используем другой плагин, который сам сделает всё, ну почти всё. А именно: ProfilePress - Custom Login, Registration & Password Reset Form Builder for WordPress. С этим плагином мы также заменим регистрацию, авторизацию, восстановление пароля, редактирование пароля и создадим дополнительную страницу с профилем пользователя. Плагин сам отключит использование wp-login.php и сделает перенаправление на созданные страницы. Документация и примеры также есть на сайте автора и на сайте WordPress.

 

Вот собственно и всё, всем спасибо за внимание. Пишите в комментариях, какие плагины и функции используете вы для этого. Будет интересно почитать и посмотреть ваши способы.

Похожее в блоге

  • Правильный robots.txt для WordPress и применение мета-тега robotsПравильный robots.txt для WordPress и применение мета-тега robots
  • Удаляем ненужный код из WordPress — Чистим сайтУдаляем ненужный код из WordPress — Чистим сайт
  • Как отключить замену кавычек в WordPressКак отключить замену кавычек в WordPress
  • Отключаем создание копий картинок в WordPressОтключаем создание копий картинок в WordPress
  • Уязвимость WordPress через файл xmlrpc.php. Решение проблемы!Уязвимость WordPress через файл xmlrpc.php. Решение проблемы!

Tags: functionsProfile BuilderShortCodesuser profileUser registrationwordpresswp-login.phpавторизацияаккуантвосстановление пароляпрофиль пользователярегистрациястандартная страница входаШорткоды

Shnapik

Вебмастер с опытом ищет приют! Возьмите меня, а то меня рвут!

Share

You may also like...

  • Защита от скликивания в Яндекс Директ и Google AdWords

    Защита от скликивания в Яндекс Директ и Google AdWords

  • Защита от SQL-инъекций PHP

    Защита от SQL-инъекций PHP

  • Cotonti Siena Framework

    Фреймворк Cotonti Siena - Первые взгляды

1 Response

  • Comments1
  • Pingbacks0
  1. Виктор:
    31.05.2019 в 06:08

    А вот wp-admin переводит на стандартную форму Вордпрес!!!

    Ответить

Добавить комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Next Уязвимость WordPress через файл xmlrpc.php. Решение проблемы!
  • Previous Что такое Дропшиппинг (Dropshipping)? — Информация и особенности

Последние/Популярные

  • Recent Posts
  • Popular Posts
  • Блог

    Google Shopping – эффективная реклама в Интернете

    09.12.2021

  • SEO

    5 результатов, которые дает СЕО-продвижение сайта

    09.12.2021

  • Summernote File

    JavaScript & jQuery

    Summernote File - загрузка файлов на сервер для редактора Summernote

    09.10.2021

  • 3 основных вида SEO-оптимизации, которые использует студия «Site Ok» для раскрутки сайтов

    SEO

    3 основных вида SEO-оптимизации, которые использует студия «Site Ok» для раскрутки сайтов

    30.09.2021

  • Что такое прокси и зачем он обычному пользователю

    Блог

    Что такое прокси и зачем он обычному пользователю

    20.07.2021

  • Qiwi API Class PHP - Класс для работы с API Qiwi

    PHP

    Qiwi API Class PHP - Класс для работы с API Qiwi

    26.05.2018

  • Вебмастеру

    Какой движок выбрать: DLE или WordPress?

    20.01.2017

  • Вывод записей со стены сообщества Вконтакте на PHP

    PHP

    Вывод записей со стены сообщества Вконтакте на PHP

    23.07.2017

  • SEO чистка WordPress

    WordPress

    Удаляем ненужный код из WordPress - Чистим сайт

    19.02.2017

  • как добавить сайта в яндекс новости и гугл новости

    Вебмастеру

    Как добавить сайт в Яндекс.Новости и Google News?

    29.01.2017

Последние комментарии

  • Ирина says:
    Спасибо за статью, все точно по ней сделала и получилось, спасибо...
  • Shnapik says:
    Скорее всего в теме где-то нужно смотреть, возможно включен кеш страниц...
  • Shnapik says:
    Немного не понял причем тут дизайн, он никак не должен взаимодействовать...
  • Shnapik says:
    Да нет, монитор у меня широкий, наоборот. По ширине сайта, чуть...
  • Shnapik says:
    Немного мутно описана ваша идея. В целом можно подгружать последнюю запись...

Профиль

  • Регистрация
  • Войти

Счетчики

Яндекс.Метрика www.megastock.ruЗдесь находится аттестат нашего WM идентификатора v

Счетчики

Яндекс.Метрика www.megastock.ruЗдесь находится аттестат нашего WM идентификатора v

Подписка на блог

© 2017-2021 Culabra — Блог вебмастера. All rights reserved. КОНТЕНТ НЕ ВОРОВАТЬ!

Вставить/изменить ссылку

Введите адрес назначения (URL)

Или сделайте ссылку на существующий материал

    Поисковый запрос не задан. Показаны недавние элементы. Воспользуйтесь поиском или клавишами вверх/вниз, чтобы выбрать элемент.