# post_password_required()

URL: https://chugunov.pro/api-wordpress/functions/post_password_required/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 2.7.0.

## Сигнатура

```php
post_password_required( int|WP_Post|null $post = null ): bool
```

## Описание

Определяет, требует ли запись пароль и был ли введён правильный пароль.

## Параметры

- `$post` `int|WP_Post|null` — необязательный, по умолчанию `null`. Необязательная запись. Если не указана, используется глобальная переменная $post.

## Возвращаемое значение

`bool`

## Исходный код

Файл: `wp-includes/post-template.php:882`

```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 ( ! str_starts_with( $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 object.
	 */
	return apply_filters( 'post_password_required', $required, $post );
}
```

## История изменений

- 2.7.0 — Introduced.

## Связанные

Использует: [`wp_unslash`](https://chugunov.pro/api-wordpress/functions/wp_unslash/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`get_post`](https://chugunov.pro/api-wordpress/functions/get_post/).
Используется в: [`_block_bindings_post_data_get_value`](https://chugunov.pro/api-wordpress/functions/_block_bindings_post_data_get_value/), [`_block_bindings_post_meta_get_value`](https://chugunov.pro/api-wordpress/functions/_block_bindings_post_meta_get_value/), `WP_REST_Posts_Controller::prepare_item_for_response`, `WP_REST_Posts_Controller::prepare_item_for_database`, `WP_REST_Comments_Controller::check_read_post_permission`, [`wp_handle_comment_submission`](https://chugunov.pro/api-wordpress/functions/wp_handle_comment_submission/), `WP_Posts_List_Table::column_title`, `WP_List_Table::comments_bubble`, [`wp_dashboard_recent_comments`](https://chugunov.pro/api-wordpress/functions/wp_dashboard_recent_comments/), `WP_Comments_List_Table::single_row`, [`rss_enclosure`](https://chugunov.pro/api-wordpress/functions/rss_enclosure/), [`atom_enclosure`](https://chugunov.pro/api-wordpress/functions/atom_enclosure/), [`get_the_content`](https://chugunov.pro/api-wordpress/functions/get_the_content/), [`get_the_excerpt`](https://chugunov.pro/api-wordpress/functions/get_the_excerpt/), [`get_post_class`](https://chugunov.pro/api-wordpress/functions/get_post_class/), [`gallery_shortcode`](https://chugunov.pro/api-wordpress/functions/gallery_shortcode/), [`wp_playlist_shortcode`](https://chugunov.pro/api-wordpress/functions/wp_playlist_shortcode/), `wp_xmlrpc_server::wp_newComment`, [`comments_popup_link`](https://chugunov.pro/api-wordpress/functions/comments_popup_link/), [`get_comment_excerpt`](https://chugunov.pro/api-wordpress/functions/get_comment_excerpt/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/post_password_required/
