is_post_status_viewable() – Determine whether a post status is considered "viewable".

You appear to be a bot. Output may be restricted

Description

Determine 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.

Usage

$bool = is_post_status_viewable( $post_status );

Parameters

$post_status
( string|stdClass ) required – Post status name or object.

Returns

bool Whether the post status should be considered viewable.

Source

File name: wordpress/wp-includes/post.php
Lines:

1 to 34 of 34
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 );
}
 

 View on GitHub View on Trac