On this page
is_post_status_viewable( string|stdClass $post_status ): bool
Determines 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.
Parameters
$post_statusstring|stdClass Required-
Post status name or object.
Return
bool Whether the post status should be considered viewable.
Source
File: wp-includes/post.php. View all references
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 );
}
Hooks
- apply_filters( 'is_post_status_viewable',
bool $is_viewable ,stdClass $post_status ) -
Filters whether a post status is considered “viewable”.
Related
Uses
| Uses | Description |
|---|---|
| get_post_status_object() wp-includes/post.php | Retrieves a post status object by name. |
| apply_filters() wp-includes/plugin.php | Calls the callback functions that have been added to a filter hook. |
Used By
| Used By | Description |
|---|---|
| wp_force_plain_post_permalink() wp-includes/link-template.php | Determine whether post should always use a plain permalink structure. |
| is_post_publicly_viewable() wp-includes/post.php | Determines whether a post is publicly viewable. |
Changelog
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/is_post_status_viewable