# is_post_type_viewable()

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

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

## Сигнатура

```php
is_post_type_viewable( string|WP_Post_Type $post_type ): bool
```

## Описание

Для встроенных типов записей, таких как записи и страницы, будет проверяться значение ‘public’.
Для всех остальных будет использоваться значение ‘publicly_queryable’.

## Параметры

- `$post_type` `string|WP_Post_Type` — обязательный. Имя или объект типа записи.

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

`bool`

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

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

```php
function is_post_type_viewable( $post_type ) {
	if ( is_scalar( $post_type ) ) {
		$post_type = get_post_type_object( $post_type );

		if ( ! $post_type ) {
			return false;
		}
	}

	if ( ! is_object( $post_type ) ) {
		return false;
	}

	$is_viewable = $post_type->publicly_queryable || ( $post_type->_builtin && $post_type->public );

	/**
	 * Filters whether a post type is considered "viewable".
	 *
	 * The returned filtered value must be a boolean type to ensure
	 * `is_post_type_viewable()` only returns a boolean. This strictness
	 * is by design to maintain backwards-compatibility and guard against
	 * potential type errors in PHP 8.1+. Non-boolean values (even falsey
	 * and truthy values) will result in the function returning false.
	 *
	 * @since 5.9.0
	 *
	 * @param bool         $is_viewable Whether the post type is "viewable" (strict type).
	 * @param WP_Post_Type $post_type   Post type object.
	 */
	return true === apply_filters( 'is_post_type_viewable', $is_viewable, $post_type );
}
```

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

- 5.9.0 — Added is_post_type_viewable hook to filter the result.
- 4.6.0 — Converted the $post_type parameter to accept a WP_Post_Type object.
- 4.5.0 — Added the ability to pass a post type name in addition to object.
- 4.4.0 — Introduced.

## Связанные

Использует: [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`get_post_type_object`](https://chugunov.pro/api-wordpress/functions/get_post_type_object/).
Используется в: [`build_query_vars_from_query_block`](https://chugunov.pro/api-wordpress/functions/build_query_vars_from_query_block/), `WP_Query`, [`is_post_publicly_viewable`](https://chugunov.pro/api-wordpress/functions/is_post_publicly_viewable/), `WP_REST_Posts_Controller::get_item_schema`, `WP_REST_Posts_Controller::prepare_item_for_response`, `WP_REST_Posts_Controller::get_item`, `WP_REST_Post_Types_Controller::prepare_item_for_response`, `WP_Post_Type::add_rewrite_rules`, [`get_preview_post_link`](https://chugunov.pro/api-wordpress/functions/get_preview_post_link/), `WP_Posts_List_Table::handle_row_actions`, [`post_submit_meta_box`](https://chugunov.pro/api-wordpress/functions/post_submit_meta_box/), `WP_Posts_List_Table::inline_edit`, [`wp_get_archives`](https://chugunov.pro/api-wordpress/functions/wp_get_archives/), `WP::parse_request`, [`get_attachment_link`](https://chugunov.pro/api-wordpress/functions/get_attachment_link/).

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