post_password_required() WP 2.7.0

Перевіряє захищений пост паролем чи ні. Також перевіряє правильність пароля, якщо пароль посту встановлено.

Хуки з функції

Повертає

true|false. Логічні: true, якщо потрібно ввести пароль для перегляду посту або false, якщо пост не захищений паролем.

Використання

if( post_password_required( $post ) ){ ... }
$post
(число/об’єкт) (обов’язковий)
ID посту або об’єкт із даними посту.


Типово: глобальна змінна $post

Приклади

0

#1 Дія лише для постів захищених паролем

Припустимо, що пост 443 захищений паролем, тоді:

if( post_password_required( 443 ) ){
	echo "Цей пост захищений паролем!";
}

список змін

З версії 2.7.0Введено.

Код post_password_required() WP 6.0.2

function post_password_required( $post = null ) {
	$post = get_post($post);

	if ( empty( $post->post_password ) ) {
		/** Цей filter is documented в wp-includes/post-template.php */
		return apply_filters( 'post_password_required', false, $post);
	}

	if ( ! isset( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] ) ) {
		/** Цей filter is documented в wp-includes/post-template.php */
		return apply_filters( 'post_password_required', true, $post );
	}

	require_once ABSPATH. WPINC. '/class-phpass.php';
	$ hasher = New PasswordHash (8, true);

	$hash = wp_unslash( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] );
	if ( 0 !== strpos( $hash, '$P$B' ) ) {
		$ required = true;
	} else {
		$required = ! $hasher->CheckPassword( $post->post_password, $hash );
	}

	/**
	 * Filters whether post requires user to supply a password.
	 *
	 * @ Since 4.7.0
	 *
	 * @param bool $required Whether user needs to supply a password. True if password has not been
	 * забезпечений або неправильний, false, і якщо password не буде застосований або не вимагається.
	 * @param WP_Post $post Post об'єкт.
	 */
	return apply_filters( 'post_password_required', $required, $post );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *