как перенаправить пользователей на кастомную страницу входа при клике на "войти, чтобы ответить"?

28 янв. 2014 г., 21:44:09
Просмотры: 16.3K
Голосов: 0

Я разрабатываю свой сайт на WordPress и создал собственную страницу входа. Но когда неавторизованный пользователь видит комментарий к записи с текстом "Войти, чтобы ответить", при клике на "Войти" происходит перенаправление на стандартную страницу wp-login.php. Как сделать редирект на мою кастомную страницу входа при клике на "Войти, чтобы ответить" в WordPress вместо wp-login.php?

0
Все ответы на вопрос 1
7

Вам нужно перенаправлять каждый раз, когда WordPress ищет wp-login.php.

Вы можете сделать это, добавив следующий код в файл functions.php вашей активной темы.

function redirect_login_page(){

    // Сохраняем для проверки, если эта страница равна wp-login.php
    $page_viewed = basename( $_SERVER['REQUEST_URI'] );

    // Постоянная ссылка на пользовательскую страницу входа
    $login_page  = get_permalink( 'CUSTOM_LOGIN_PAGE_ID' );

    if( $page_viewed == "wp-login.php" ) {
        wp_redirect( $login_page );
        exit();
    }
}

add_action( 'init','redirect_login_page' );
29 янв. 2014 г. 09:13:46
Комментарии

спасибо за вашу помощь. У меня к вам один вопрос. Я переименовал wp-login.php с помощью плагина. Должен ли я использовать это переименованное имя в коде или оставить wp-login?

user3187719 user3187719
29 янв. 2014 г. 09:21:44

Пожалуйста, никогда не вносите изменения в основные файлы, так как вы потеряете все эти изменения при обновлении, а wp-login.php является основным файлом

Maruti Mohanty Maruti Mohanty
29 янв. 2014 г. 09:23:05

Нет, я сделал это с помощью плагина. Когда я деактивирую плагин, он возвращается к исходному состоянию. Пожалуйста, подскажите, что использовать - переименованный wp-login.php или исходный wp-login.php.

user3187719 user3187719
29 янв. 2014 г. 09:27:56

Я не совсем понимаю, что вы имеете в виду, но главное правило — стараться по возможности не изменять файлы ядра.

Maruti Mohanty Maruti Mohanty
29 янв. 2014 г. 09:30:08

Я всё ещё не понимаю, в чём путаница — вы вставили тот же самый код, который я привёл в ответе.

Maruti Mohanty Maruti Mohanty
29 янв. 2014 г. 09:38:02

Можно ли сделать так: function redirect_login_page(){ // Store for checking if this page equals wp-login.php $page_viewed = basename( $_SERVER['REQUEST_URI'] ); // permalink to the custom login page $login_page = get_permalink( 'CUSTOM_LOGIN_PAGE_ID' ); if( $page_viewed == "mylogin" ) { wp_redirect( $login_page ); exit(); } } add_action( 'init','redirect_login_page' ); Где 'mylogin' — это моё переименованное значение. Извините, предыдущий вариант был ошибочным.

user3187719 user3187719
29 янв. 2014 г. 09:39:35

Похоже, что при использовании этого метода, если вы перенаправляете wp-login на страницу с фронтенд-формой входа, войти там не получится. Кажется, WordPress зацикливается — после отправки данных для входа страница просто обновляется

zok zok
21 июн. 2016 г. 19:27:35
Показать остальные 2 комментариев