WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

get_post_status() WP 2.0.0

Получает статус указанной записи/поста: publish, draft и т.д.

Если функции был передан ID вложения (прикрепленной записи), то функция вернет статус родительской записи. Если вложение не прикреплено ни к какому посту, то оно будет считаться опубликованным - функция вернет publish.

Список базовых статусов в WordPress:

publish
future
draft
pending
private
trash
auto-draft
inherit

Возвращает

Строку/false. Статус записи при успехе, false если не удалось получить статус.

Работает на основе: get_post()
✈ 1 раз = 0.000357с = быстро | 50000 раз = 0.29с = очень быстро | PHP 7.0.5, WP 4.4.2
Хуки из функции

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

get_post_status( $post );
$post(число/WP_Post)
Идентификатор (ID) записи или объект записи WP_Post.
По умолчанию: null (текущая запись в цикле)

Примеры

#1 Выведем на экран статус поста с идентификатором 121

$status = get_post_status( 121 );
echo $status;
// выведет:
// publish, если пост опубликован.
// draft, если это черновик и т.д.

#2 Выведем локализованное название статуса поста

$status = get_post_status( 121 );
echo get_post_status_object( $status )->label; // Опубликовано

Список изменений

С версии 2.0.0 Введена.

Код get post status: wp-includes/post.php WP 5.4.2

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

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

	if ( 'attachment' == $post->post_type ) {
		if ( 'private' == $post->post_status ) {
			return 'private';
		}

		// Unattached attachments are assumed to be published.
		if ( ( 'inherit' == $post->post_status ) && ( 0 == $post->post_parent ) ) {
			return 'publish';
		}

		// Inherit status from the parent.
		if ( $post->post_parent && ( $post->ID != $post->post_parent ) ) {
			$parent_post_status = get_post_status( $post->post_parent );
			if ( 'trash' == $parent_post_status ) {
				return get_post_meta( $post->post_parent, '_wp_trash_meta_status', true );
			} else {
				return $parent_post_status;
			}
		}
	}

	/**
	 * Filters the post status.
	 *
	 * @since 4.4.0
	 *
	 * @param string  $post_status The post status.
	 * @param WP_Post $post        The post object.
	 */
	return apply_filters( 'get_post_status', $post->post_status, $post );
}

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

Из метки: statuses (статус записи коммента юзера)

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

Комментариев нет