is_post_status_viewable()WP 5.7.0

Determines whether a post status is considered "viewable".

For built-in post statuses such as publish and private, the 'public' value will be evaluated. For all others, the 'publicly_queryable' value will be used.

Хуки из функции

Возвращает

true|false. Whether the post status should be considered viewable.

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

is_post_status_viewable( $post_status );
$post_status(строка|stdClass) (обязательный)
Post status name or object.

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

С версии 5.7.0 Введена.
С версии 5.9.0 Added is_post_status_viewable to filter the result.

Код is_post_status_viewable() WP 6.4.3

function is_post_status_viewable( $post_status ) {
	if ( is_scalar( $post_status ) ) {
		$post_status = get_post_status_object( $post_status );

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

	if (
		! is_object( $post_status ) ||
		$post_status->internal ||
		$post_status->protected
	) {
		return false;
	}

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

	/**
	 * Filters whether a post status is considered "viewable".
	 *
	 * The returned filtered value must be a boolean type to ensure
	 * `is_post_status_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 status is "viewable" (strict type).
	 * @param stdClass $post_status Post status object.
	 */
	return true === apply_filters( 'is_post_status_viewable', $is_viewable, $post_status );
}