# get_post_status()

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

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

## Сигнатура

```php
get_post_status( int|WP_Post $post = null ): string|false
```

## Описание

Если идентификатор записи принадлежит вложению, вместо него будет возвращён статус родительской записи.

## Параметры

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

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

`string|false`

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

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

```php
function get_post_status( $post = null ) {
	// Normalize the post object if necessary, skip normalization if called from get_sample_permalink().
	if ( ! $post instanceof WP_Post || ! isset( $post->filter ) || 'sample' !== $post->filter ) {
		$post = get_post( $post );
	}

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

	$post_status = $post->post_status;

	if (
		'attachment' === $post->post_type &&
		'inherit' === $post_status
	) {
		if (
			0 === $post->post_parent ||
			! get_post( $post->post_parent ) ||
			$post->ID === $post->post_parent
		) {
			// Unattached attachments with inherit status are assumed to be published.
			$post_status = 'publish';
		} elseif ( 'trash' === get_post_status( $post->post_parent ) ) {
			// Get parent status prior to trashing.
			$post_status = get_post_meta( $post->post_parent, '_wp_trash_meta_status', true );

			if ( ! $post_status ) {
				// Assume publish as above.
				$post_status = 'publish';
			}
		} else {
			$post_status = get_post_status( $post->post_parent );
		}
	} elseif (
		'attachment' === $post->post_type &&
		! in_array( $post_status, array( 'private', 'trash', 'auto-draft' ), true )
	) {
		/*
		 * Ensure uninherited attachments have a permitted status either 'private', 'trash', 'auto-draft'.
		 * This is to match the logic in wp_insert_post().
		 *
		 * Note: 'inherit' is excluded from this check as it is resolved to the parent post's
		 * status in the logic block above.
		 */
		$post_status = 'publish';
	}

	/**
	 * Filters the post status.
	 *
	 * @since 4.4.0
	 * @since 5.7.0 The attachment post type is now passed through this filter.
	 *
	 * @param string  $post_status The post status.
	 * @param WP_Post $post        The post object.
	 */
	return apply_filters( 'get_post_status', $post_status, $post );
}
```

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

- 2.0.0 — Introduced.

## Связанные

Использует: [`get_post_status`](https://chugunov.pro/api-wordpress/functions/get_post_status/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`get_post_meta`](https://chugunov.pro/api-wordpress/functions/get_post_meta/), [`get_post`](https://chugunov.pro/api-wordpress/functions/get_post/).
Используется в: [`wp_force_plain_post_permalink`](https://chugunov.pro/api-wordpress/functions/wp_force_plain_post_permalink/), [`is_post_publicly_viewable`](https://chugunov.pro/api-wordpress/functions/is_post_publicly_viewable/), [`the_block_editor_meta_box_post_form_hidden_fields`](https://chugunov.pro/api-wordpress/functions/the_block_editor_meta_box_post_form_hidden_fields/), [`register_and_do_post_meta_boxes`](https://chugunov.pro/api-wordpress/functions/register_and_do_post_meta_boxes/), [`get_privacy_policy_url`](https://chugunov.pro/api-wordpress/functions/get_privacy_policy_url/), `WP_Privacy_Requests_Table::column_status`, `WP_Customize_Manager::handle_dismiss_autosave_or_lock_request`, `WP_Customize_Manager::trash_changeset_post`, `WP_Customize_Manager::handle_changeset_trash_request`, [`_wp_keep_alive_customize_changeset_dependent_auto_drafts`](https://chugunov.pro/api-wordpress/functions/_wp_keep_alive_customize_changeset_dependent_auto_drafts/), [`_wp_delete_customize_changeset_dependent_auto_drafts`](https://chugunov.pro/api-wordpress/functions/_wp_delete_customize_changeset_dependent_auto_drafts/), `WP_Customize_Manager::save_changeset_post`, `WP_Customize_Manager::import_theme_starter_content`, `WP_REST_Posts_Controller::prepare_links`, `WP_Customize_Nav_Menus::save_nav_menus_created_posts`, [`wp_get_canonical_url`](https://chugunov.pro/api-wordpress/functions/wp_get_canonical_url/), [`wp_handle_comment_submission`](https://chugunov.pro/api-wordpress/functions/wp_handle_comment_submission/), `WP_List_Table::comments_bubble`, [`redirect_post`](https://chugunov.pro/api-wordpress/functions/redirect_post/), [`map_meta_cap`](https://chugunov.pro/api-wordpress/functions/map_meta_cap/), `WP_Query::get_posts`, [`wp_set_post_categories`](https://chugunov.pro/api-wordpress/functions/wp_set_post_categories/), [`wp_delete_post`](https://chugunov.pro/api-wordpress/functions/wp_delete_post/), [`get_post_status`](https://chugunov.pro/api-wordpress/functions/get_post_status/), [`redirect_canonical`](https://chugunov.pro/api-wordpress/functions/redirect_canonical/), [`wp_setup_nav_menu_item`](https://chugunov.pro/api-wordpress/functions/wp_setup_nav_menu_item/), `wp_xmlrpc_server::wp_newComment`.

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