is_post_status_viewable() WordPress Function

The is_post_status_viewable() function allows you to check if a post is viewable by the current user. This is useful for restricting access to certain content.

is_post_status_viewable( string|stdClass $post_status ) #

Determine whether a post status is considered “viewable”.


Description

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.


Top ↑

Parameters

$post_status

(string|stdClass)(Required)Post status name or object.


Top ↑

Return

(bool) Whether the post status should be considered viewable.


Top ↑

Source

File: wp-includes/post.php

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 );
}


Top ↑

Changelog

Changelog
VersionDescription
5.9.0Added is_post_status_viewable hook to filter the result.
5.7.0Introduced.

The content displayed on this page has been created in part by processing WordPress source code files which are made available under the GPLv2 (or a later version) license by theĀ Free Software Foundation. In addition to this, the content includes user-written examples and information. All material is subject to review and curation by the WPPaste.com community.

Show More
Show More