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.
Parameters
- $post_type
(string|WP_Post_Type)(Required)Post type name or object.
Return
(bool) Whether the post type should be considered viewable.
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 ); }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
5.9.0 | Added is_post_type_viewable hook to filter the result. |
4.6.0 | Converted the $post_type parameter to accept a WP_Post_Type object. |
4.5.0 | Added the ability to pass a post type name in addition to object. |
4.4.0 | Introduced. |