使用以下代码:
<?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。
最合适的回答,由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”方式。