我需要在我的wp网站上有两个功能。首先,我需要更改密码保护页面的文本,所以我直接从this article on wordpress codex.它工作得很漂亮。
function my_password_form() {
global $post;
$label = \'pwbox-\'.( empty( $post->ID ) ? rand() : $post->ID );
$o = \'<form action="\' . esc_url( site_url( \'wp-login.php?action=postpass\', \'login_post\' ) ) . \'" method="post">
\' . __( "<p>Please get in touch with us on ######## and get a password.</p>" ) . \'
<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\' );
其次,如果有人在受密码保护的页面中输入了错误的密码,我需要显示一条错误消息,所以我选择了@toscho提供的另一个解决方案
from here at wpse 它也很有魅力。
//ERROR MESSAGE FOR PASSWORD PROTECTED POSTS/PAGES
add_filter( \'the_password_form\', \'wpse_71284_custom_post_password_msg\' );
function wpse_71284_custom_post_password_msg( $form ) {
// No cookie, the user has not sent anything until now.
if ( ! isset ( $_COOKIE[ \'wp-postpass_\' . COOKIEHASH ] ) )
return $form;
// We have a cookie, but it doesn’t match the password.
$msg = \'<p class="custom-password-message">WRONG PASSWORD.</p>\';
return $msg . $form;
}
问题是,由于某种原因,它们无法协同工作。具体来说,无论第二个代码是否被注释掉,codex的第一个代码都可以工作。但与错误消息相关的第二个代码块在第一个代码块存在的情况下根本不起作用。不用说,这两个代码在函数中都位于彼此之上。php。我正在使用最新的wp-3.7,并在live server中对此进行测试。我错过了什么,请指点我。提前谢谢。