Здравствуйте.
Интересует следующее: как убрать ссылку на страницу генерации (напоминания) пароля в блоке с сообщением об ошибке, когда пользователь вводит неверный логин или пароль в всплывающей форме авторизации?
Из формы авторизации, в той части где переключение на "Авторизация", "Регистрация" я эту функцию убрал, а вот в области вывода ошибки так и не нашел где что нужно подправить.
Полагаю, что здесь: authorize.php но не могу найти где именно.
Камнями не бросать - в пхп не очень-то и силён. Простите.
RCL 13.8.12
WP 4.2
Заранее благодарен.
Здравствуйте.
Эту ошибку с ссылкой возвращает вордпресс.
Файл /wp-recall/functions/register.php
Глобальная переменная вордпресса $wp_errors внутри функции rcl_notice_form
echo '<span class="error">' . apply_filters( 'login_messages', $messages ) . "</span> ";
В кодексе вордпресса этот фильтр описан
Благодарю за оперативный ответ. Кажется начинаю понимать... В принципе сообщение об ошибке как таковое необходимо, но активную ссылку на страницу напоминания пароля (генерации нового) хотелось бы из этого блока вывода ошибки убрать... И всё равно не пойму как это сделать 🙁
Возможно убрать только целый блок с сообщением об ошибке, а отдельно строку со ссылкой на страницу генерации/восстановления пароля, никак... 🙁 Подскажите всё же, куда мне смотреть? 😉
Нашел вот такое решение:
function remove_standart_login_errors(){ return '<strong>ОШИБКА</strong>: логин или пароль некорректен.'; } add_filter( 'login_errors', 'remove_standart_login_errors' );
Автор решения предлагает вставить данный код в файл functions.php (не совсем только понял в functions.php темы или ВП). Ставил - либо ничего не меняется в выводе ошибки либо ошибка Call to undefined function add_filter относящаяся к последней строке кода.
p.s. код ставил и в начале и в конце functions.php как темы так и ВП
Да, действительно на стандартной странице входа - работает. А во всплывающей форме рекола - нет
UPD Пока помогла следующая функция, которую добавил в файл functions.php темы:
add_filter( 'authenticate', 'my_auth', 20, 3 ); function my_auth($user, $username, $password){ if( isset( $user->errors['invalid_username'] ) || isset( $user->errors['incorrect_password'] ) ){ return new WP_Error('broke', '<b>ОШИБКА</b>: неверный логин или пароль'); } return $user; }
"К фильтру authenticate мы прицепили функцию my_auth(). Также передадим 2 дополнительных параметра. Третий параметр – 20 – отвечает за приоритет выполнения нашей функции (по умолчанию 10). Чем выше приоритет, тем позже функция выполнится. Наша функция должна выполнится позже добавленных к authenticate фильтров, поэтому мы установили приоритет больше 10. Четвертый параметр – 3 – отвечает за количество аргументов, которое будет принимать наша пользовательская функция. Функция my_auth() должна принять именно 3 аргумента, описания которых вы можете найти в документации к хуку authenticate.
Теперь, даже если мы введем верный логин, но неверный пароль, то логин не будет сохраняться. Ну и при некорректной авторизации мы всегда будем видеть собственный текст ошибки."
...Возможно всё же есть метод проще, без использования функции my_auth() ?
Пока тоже тестирую, конфликтов не обнаружил. Но обратил внимание на то, что если после попытки авторизоваться под неверным логином и паролем войти под действительной учётной записью, то на странице остается крестик от всплывающей формы и страница затемнена (как в случае, когда активна всплывающая форма авторизации). Наблюдается это независимо от того, добавлен код для который я указал выше или нет.
: