* @return bool false if a password is not required or the correct password cookie is present, true otherwise.
*/
function post_password_required( $post = null ) {
- global $wp_hasher;
-
$post = get_post($post);
if ( empty( $post->post_password ) )
if ( ! isset( $_COOKIE['wp-postpass_' . COOKIEHASH] ) )
return true;
- if ( empty( $wp_hasher ) ) {
- require_once( ABSPATH . 'wp-includes/class-phpass.php');
- // By default, use the portable hash from phpass
- $wp_hasher = new PasswordHash(8, true);
- }
+ require_once ABSPATH . 'wp-includes/class-phpass.php';
+ $hasher = new PasswordHash( 8, true );
$hash = stripslashes( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] );
+ if ( 0 !== strpos( $hash, '$P$B' ) )
+ return true;
- return ! $wp_hasher->CheckPassword( $post->post_password, $hash );
+ return ! $hasher->CheckPassword( $post->post_password, $hash );
}
/**