2014-10-09 1 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

Есть причина, по которой вы только обновили до 3.9.2, а не 4.0? – rnevius

+0

Потому что я хотел использовать 3.9.2. Даже если я обновил до 4.0, до сих пор нет wp-pass.php. –

+0

Если вы посмотрите на [changelog for Version 3.4] (http://codex.wordpress.org/Version_3.4), вы увидите следующее: 'Установить cookie паролей сообщений через действие в wp-login.php; удалите wp-pass.php (один из файлов root); подчиняться настройкам входа в систему 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'); 
    ?> 

Примечание:Я использую WordPress 3.9.2

0

У меня была такая же проблема, и я нашел решение

1) Установите страницу личное паролем

2) Вставьте эту форму на другую страницу (формуляр postpass wordpress form):

<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) Изменить /wp-login.php файл (корневой каталог, в это время, это находится строка 460):

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) включить сюда основные части ответа и предоставить ссылку для справки. –

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

  • Нет связанных вопросов^_^