2011-12-12 4 views
0

WordPress 사이트를 설치했는데 이상한 문제가 발생했습니다. 구독자를위한 로그인 페이지를 설정했는데 로그인에 실패하면 페이지가 wp-login.php 페이지가 아닌 내 사용자 정의 로그인 페이지로 리디렉션되기를 원합니다. 이 문제를 해결하기 위해 wp-login.php에 다음 코드를 추가했습니다. 리디렉션이 전혀 작동하지 않는리디렉션 기능이 더 이상 Wordpress 사이트에서 작동하지 않습니다.

// if ($shake_error_codes && $wp_error->get_error_code() && //in_array($wp_error->get_error_code(), $shake_error_codes)) 
//  add_action('login_head', 'wp_shake_js', 12); 

//I have replaced the code on line 55 with the following 
    if ($shake_error_codes && $wp_error->get_error_code() && in_array($wp_error->get_error_code(), $shake_error_codes)){ 
header("Location: index.php/login?login_error=1"); exit; 
    } 

, 나는 또한 헤더()의() 기능을 대신 wp_redirect을 사용하고 여전히 리디렉션하지 않습니다.

이 문제를 제공하는 wp-login 페이지 일뿐만 아니라 다른 페이지의 리디렉션도 테스트했습니다. 예를 들어 홈 템플릿 페이지 인 home.php에서 테스트를 위해 다음 코드를 페이지 상단에 추가했습니다. 리디렉션 중 하나가 작동하지 왜 내가 볼 수없는

$location = 'http://www.google.com'; 
wp_redirect($location); 

또한

$location = 'http://www.google.com'; 
header("Location: $location"); 

는 그 리디렉션 등이 차단되도록 주어진 오류가 없습니다. 가능한 한이 문제의 원인이 될 수있는 무엇, 그것은 헤더가 이미 그래서 밖으로 '전송'인쇄 감사

그냥 업데이트, 내가 추가 한

페이지

if(headers_sent()){echo "sent";} 

의 상단에 다음 코드를 지원하십시오 이

+0

페이지가 표시되거나 그냥 빈 페이지입니까? 리디렉션이 있다고 가정 할 때 무엇을 볼 수 있습니까? 헤더() 앞에 var_dump ('test')와 같은 디버그 메소드를 시도 했습니까? 오류를 표시하도록 PHP를 설정 했습니까? – Vigrond

+0

오류가 표시되지 않고 리디렉션이 무시되고 페이지가 정상적으로로드됩니다. 예, PHP가 오류를 표시하도록 설정되었으므로 잘못된 코드를 추가하면 오류가 발생합니다. 내가 언급 한 디버그 방법을 시도해 주셔서 감사합니다. – Charl777

답변

0

를 찾고 전송 된 것은이 시도 :

<?php wp_redirect('http://www.example.com', 301); exit; ?> 

노트를

HTTP/1.1 상태 코드 302는 임시 리디렉션입니다. 페이지가 영구적으로 이동 한 경우 HTTP 상태 코드 301을 사용하십시오.

+0

bizzare 솔루션을 사용해 보았지만 불행히도 제대로 작동하지 않습니다. 올바른 방향으로 나를 지적했을 것입니다. 금요일에 사이트의 임시 URL을 도메인 이름으로 변경했습니다. 이것이 원인 일 수 있는지 나는 모른다. – Charl777

+0

charl 호스트를 지우거나 새 폴더를 만든 다음 깨끗한 WordPress를 설치 한 다음 wp_redirect를 다시 사용하여 결과를 알려주십시오. – bizzr3

+0

불행히도이 사이트는 이미 생생하고 매우 바쁩니다. 따라서 깨끗한 설치가 최후의 수단이 될 것입니다.이 오류를 디버깅하면서 진행 상황을 계속 업데이트 할 것입니다. – Charl777

관련 문제