is_post_type_viewable() WordPress Function

The is_post_type_viewable() function determines whether a given post type is viewable by the current user. This is useful for checking if a user has the necessary permissions to view a particular post type.

is_post_type_viewable( string|WP_Post_Type $post_type ) #

Determines whether a post type is considered “viewable”.


Description

For built-in post types such as posts and pages, the ‘public’ value will be evaluated. For all others, the ‘publicly_queryable’ value will be used.


Top ↑

Parameters

$post_type

(string|WP_Post_Type)(Required)Post type name or object.


Top ↑

Return

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


Top ↑

Source

File: wp-includes/post.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 );
}


Top ↑

Changelog

Changelog
VersionDescription
5.9.0Added is_post_type_viewable hook to filter the result.
4.6.0Converted the $post_type parameter to accept a WP_Post_Type object.
4.5.0Added the ability to pass a post type name in addition to object.
4.4.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