2014-10-09 90 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 2014-10-09 08:09:44

+0

因为我想使用3.9.2。即使我升级到4.0,仍然没有wp-pass.php。 – 2014-10-09 08:12:35

+0

如果您查看[3.4版更新日志](http://codex.wordpress.org/Version_3.4),您将看到以下内容:'通过wp-login.php中的操作设置发布密码cookie;退休wp-pass.php(少一个根文件);服从登录密码表单提交的ssl首选项。希望这个对你有帮助。你现在需要钩入** wp-login.php **。 – rnevius 2014-10-09 08:39:37

回答

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)将此表单插入其他页面(typique postpass wordpress表单):

<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

欢迎来到Stack Overflow!虽然这可能会在理论上回答这个问题,[这将是更可取的](// meta.stackoverflow.com/q/8259)在这里包括答案的基本部分,并提供参考链接。 – 2017-07-05 11:28:34