로그인 시도가 실패한 후 다음과 같은 기능을 사용하여 사용자를 리디렉션하고 있습니다. functions.php, 나는 추가 :로그인 후 리디렉션, Wordpress URL
add_action('wp_login_failed', 'inline_login_fail');
function inline_login_fail($username) {
$referrer = $_SERVER['HTTP_REFERER'];
if (!empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin')) {
if (!strstr($referrer,'?login=failed')) { // don’t append twice
wp_redirect($referrer . '?login=failed');
} else {
wp_redirect($referrer);
}
exit;
}
}
이 작동하지만 문제는 내가 구문 분석하는 방법을 알아낼 수 없다 '로그인 - 실패?'를. 이 질문을 PHP 질문으로했을 때 그들은 URL이 잘못되었다고 말했습니다.
내 URL은 = www.site.com/?page_id=57 & 로그인 당신이 생각하는 것 지금
실패 :선호하는 URL을 www.site.com/?page_id=57?login=failed 나는 단지 '?' '&'. 이렇게하면 사용자가 홈 페이지에서 로그인하려고 할 때 문제가 발생합니다. 404라는 URL을 만듭니다. "요청한 URL/wordpress/& login = failed이 서버에서 찾을 수 없습니다."
기본 URL에서 작동하도록이 기능을 수정할 수있는 방법이 있습니까?
<?php
if(isset($_GET['login']) === true and $_GET['login'] === 'failed')
{
get_template_part('login', 'failed');
} else {
get_template_part('login', 'form');
}
?>
그렇지 않으면, 나는 전혀 그 URL로 작업하는 방법을 알아낼 수 없습니다 : 그건 내가 로그인이 같은 실패 여부의 값을 검색 할 수 있습니다. 감사합니다.
아 덕분에 대해, 그 작품! :) –
그냥 새로운 솔루션 wordpress는'add_query_arg()'에 URL에 변수를 추가하고 https://developer.wordpress.org/reference/functions/add_query_arg/에서'?'또는'&'를 처리합니다. –