2015-04-18 4 views
0

У меня нет проблем перенаправлять страницу, если пользователь вводит неправильное имя пользователя или пароль со следующим кодом. Однако, если пользователь оставил либо имя пользователя, либо пароль пустым, функция переадресации не будет выполнена, он перейдет к wordpress/login.php. Я хочу перенаправить страницу, если пользователь ничего не вводил, но нажал кнопку отправки.перенаправить страницу, если пользовательский логин был пуст в wordpress?

<?php 
 
add_action('wp_login_failed', 'my_front_end_login_fail'); // hook failed login 
 

 
function my_front_end_login_fail($username) { 
 
    $referrer = $_SERVER['HTTP_REFERER']; // where did the post submission come from? 
 
    // if there's a valid referrer, and it's not the default log-in screen 
 
    if (!empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin')) { 
 
     wp_redirect($referrer . '?login=failed'); // let's append some information (login=failed) to the URL for the theme to use 
 
     exit; 
 
    } 
 
} 
 
?>

+0

Если я помню имена правильно, было бы что-то вроде этого, проверяя значения столбца и т. д. 'if ($ _POST ['log'] ===" "&& $ _POST ['pwd'] ===" ") do stuff' – adeneo

+0

Я уже пробовал, если Я положил wp_redirect внутри этого оператора if, он дал мне ошибку, как уже отправленный заголовок. – conan

ответ

0

Вы можете использовать «wp_authenticate» действие, это один из самых ранних действий в процессе регистрации:

add_action('wp_authenticate', '_catch_empty_user', 1, 2); 

function _catch_empty_user($username, $pwd) { 
if (empty($username)) { 
    wp_safe_redirect($redirect_to_whereever_you_want); 
    exit(); 
} 
} 
+1

Это работает. но, это вызывает еще одну проблему, когда я пытался перейти на www.mysite.com/wp-login.php, он перенаправляет, несмотря ни на что. – conan

Смежные вопросы