WordPress как на ладони
wordpress jino

post_password_required() WP 2.7.0

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

Хуки из функции:
Возвращает

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

Использование

if( post_password_required( $post ) ){ ... }
$post(число/объект) (обязательный)
ID поста или объект с данными поста.
По умолчанию: глобальная переменная $post

Примеры

#1. Действие только для постов защищенных паролем

Допустим что пост 443 защищен паролем, тогда:

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

Код post password required: wp-includes/post-template.php VER 4.9.1

<?php
function post_password_required( $post = null ) {
	$post = get_post($post);

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

	if ( ! isset( $_COOKIE[ 'wp-postpass_' . COOKIEHASH ] ) ) {
		/** This filter is documented in 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 a post requires the user to supply a password.
	 *
	 * @since 4.7.0
	 *
	 * @param bool    $required Whether the user needs to supply a password. True if password has not been
	 *                          provided or is incorrect, false if password has been supplied or is not required.
	 * @param WP_Post $post     Post data.
	 */
	return apply_filters( 'post_password_required', $required, $post );
}

Cвязанные функции

Из метки: Условные теги (все)

Еще из раздела: Записи: посты, страницы, ...

post_password_required 2 комментария
  • Здравствуйте. Есть такая проблема: пост защищен паролем, но если я хуком добавляю в контент еще текст он виден под формой всем пользователям.
    Подскажите пожалуйста функцию которая будет проверять введен ли пароль и правильный ли он.
    Заранее спасибо.

    Ответить2.5 года назад #
    • О так эта функция и проверяет на ввод и соответствие пароля gamer . Тогда то что надоsmile

      Ответить2.5 года назад #

Здравствуйте, !

Ваш комментарий