2014-10-09 3 views
-2

방금 ​​새 버전의 WordPress 3.9.2로 내 사이트를 업그레이드했습니다. 내 페이지 중 하나가 일반적으로 작동하지 않는 것으로 나타났습니다. 이 페이지는 암호로 보호되어 있으며 모양이 변경되었습니다. 업그레이드했을 때 더 이상 작동하지 않습니다. 비밀번호로 보호 된 페이지에서 다음 코드를 가지고 있습니다.WordPress : 암호로 보호 된 페이지 (2)

<?php 
echo "<script type='text/javascript'>\nwindow.location = 'http://www.google.com'</script>"; 
?> 

그 목적은 다른 페이지로 리디렉션하는 것입니다. 그리고 그들은 아래의이 코드와 함께 진행됩니다. 업그레이드하기 전에

<?php 
function my_password_form() { 
    global $post; 
    $label = 'pwbox-'.(empty($post->ID) ? rand() : $post->ID); 
    $o = '<form action="' . get_option('siteurl') . '/wp-pass.php" method="post"> 
    ' . __("To view this protected post, enter the password below:") . ' 
    <label for="' . $label . '">' . __("Password:") . ' </label><input name="post_password" id="' . $label . '" type="password" size="20" maxlength="20" /><input type="submit" name="Submit" value="' . esc_attr__("Submit") . '" /> 
    </form> 
    '; 
    return $o; 
} 
add_filter('the_password_form', 'my_password_form'); 
?> 

, 그것이 내가이 일을하고 싶어 어떻게 다른 페이지로 나를 리디렉션 암호를 입력 후 : 여기에 내 옛날 코드입니다. 그러나 양식의 작업 속성을 기록하십시오. WP 3.9.2에서는 wp-pass.php가 더 이상 존재하지 않으므로 다른 코드를 찾고있었습니다.

action="' . esc_url(site_url('wp-login.php?action=postpass', 'login_post')) . '" 

그러나 암호를 입력 한 후, 그것이 내가 원하는 것을하지 않은 WP-로그인에 저를 리디렉션 :이 선을 보았다. 내가 사용하고있는 오래된 코드와 같은 방식으로 작동하는 이것에 대한 도움이 필요하다. 내 WP를 다운 그레이드하거나 플러그인을 설치하지 않을 것입니다. 단지 action=""의 값을 변경하기 만하면됩니다. 감사!

+0

가 있는가 4.0이 아닌 3.9.2로 업그레이드 한 이유는 무엇입니까? – rnevius

+0

3.9.2를 사용하고 싶었 기 때문에. 4.0으로 업그레이드 했더라도 여전히 wp-pass.php는 없습니다. –

+0

[버전 3.4의 변경 로그] (http://codex.wordpress.org/Version_3.4)를 보면 다음과 같은 내용을 볼 수 있습니다 :'wp-login.php의 액션을 통해 비밀번호 쿠키를 게시하십시오; wp-pass.php (하나의 루트 파일이 적음)을 회수하십시오. 게시 비밀 번호 양식 제출'에 대한 로그인 SSL 표준을 준수하십시오. 희망이 조금 도움이됩니다. ** wp-login.php **에 지금 접속해야합니다. – rnevius

답변

0

이미 답변을 찾았습니다. 어쩌면 내 파일이 호환되지 않아 작동하지 않는 이유가 있지만 전체 코드는 여기에 있습니다.

<?php 
    function my_password_form() { 
     global $post; 
     $label = 'pwbox-'.(empty($post->ID) ? rand() : $post->ID); 
     $o = '<form action="' . get_option('siteurl') . '/wp-login.php?action=postpass" method="post"> 
     ' . __("To view this protected post, enter the password below:") . ' 
     <label for="' . $label . '">' . __("Password:") . ' </label><input name="post_password" id="' . $label . '" type="password" size="20" maxlength="20" /><input type="submit" name="Submit" value="' . esc_attr__("Submit") . '" /> 
     </form> 
     '; 
     return $o; 
    } 
    add_filter('the_password_form', 'my_password_form'); 
    ?> 

참고 :내가 같은 문제를했고 내가 해결책

1

) 암호로 개인 페이지 설정을 발견

0

워드 프레스 3.9.2을 사용하고

2)이 양식을 다른 페이지 (형식 우체국 워드 프레스 형식)에 삽입하십시오 :

<form action="https://exemple.com/wp-login.php?action=postpass" class="post-password-form" method="post" id="go-pro-espace"> 
    <input name="post_password" id="exemple" type="password" size="20" /><br /> 
    <input type="submit" value="submit"> 
</form> 

3))이이 위치하고,이 시간에, 라인 (460)을 당신의 /wp-login.php 파일 (루트 디렉토리를 변경합니다

from: 
wp_safe_redirect(wp_get_referer()); 
to: 
wp_safe_redirect("https://exemple.fr/your-protected-page"); 

는 대답을 살펴보십시오 : Wordpress protected page, POST form on a other page

+0

스택 오버플로에 오신 것을 환영합니다! 이것은 이론적으로 질문에 대답 할 수 있지만 여기에 대답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 바람직합니다 (// meta.stackoverflow.com/q/8259). –