POST_PASSWORD_REQUIRED()无法识别使用正确密码设置的Cookie

时间:2012-06-25 作者:Charles

使用以下代码:

<?php if ( post_password_required() ) { ?>
    <form method="post" action="/wp-pass.php">
        <p>This content is password protected. To view it please enter your password below:</p>
        <input type="password" style="margin:10px 0;" size="20" id="pwbox-<?php the_ID(); ?>" name="post_password"/></label><br/>
        <input type="submit" value="Submit" name="Submit"/></p>
    </form>
<?php } else { ?>
    // echo out all of the post content
<?php } ?>
用于隐藏Wordpress密码保护功能背后的特定内容。

然而,这已停止工作。cookie仍在设置中,我可以在浏览器设置中看到它,但函数已停止识别存在正确的cookie,只需重新加载页面,再次询问密码。

我不经常使用这个功能,所以很难说它什么时候停止工作了,但这可能与将Wordpress升级到最新版本有关。这有意义吗?

UPDATE:

以下是cookie的确切内容:

Name:   wp-postpass_xxxxxxxxxxxxxxxxxxxxx
Content:    secret
Domain: www.domain.com
Path:   /
Send for:   Any kind of connection
Accessible to script:   Yes
Created:    Monday, June 25, 2012 11:55:26 AM
Expires:    Thursday, July 5, 2012 11:55:25 AM
如您所见,cookie包含正确的密码内容,但函数已停止将其识别为正确或有效。

UPDATE #2

已发布解决方案,现在已删除测试URL。

1 个回复
最合适的回答,由SO网友:Drew Baker 整理而成

算了吧!

新版本的WordPress(3.4)改变了密码保护页面的工作方式。

现在这应该适合您:

    <?php if ( post_password_required() ) { ?>
    <form method="post" action="/wp-login.php?action=postpass">
        <p>This content is password protected. To view it please enter your password below:</p>
        <input type="password" style="margin:10px 0;" size="20" id="pwbox-<?php the_ID(); ?>" name="post_password"/></label><br/>
        <input type="submit" value="Submit" name="Submit"/></p>
    </form>
<?php } else { ?>
    // echo out all of the post content
<?php } ?>
我将您的行“/wp pass.php”改为新的“wp login.php?action=postpass”方式。

结束

相关推荐

如何在管理中用图标替换“Password Protected”文本

在Wordpress中,每当帖子受到密码保护时,后端管理区域都会在帖子标题后添加粗体“-密码保护”文本。我正在寻找的是一种删除此文本的方法,而是让它使用一个图标(下面的链接),该图标应附加在标题文本之前。如何做到这一点?我想使用Aesthetica Icon Set 通过http://dryicons.com: