Make WordPress Core

Changeset 36402


Ignore:
Timestamp:
01/26/2016 02:36:32 AM (9 years ago)
Author:
boonebgorges
Message:

Allow is_post_type_viewable() to accept a post type name.

Previously, it accepted only a post type object.

Props spacedmonkey.
Fixes #35609.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/post.php

    r36316 r36402  
    16661666 *
    16671667 * @since 4.4.0
    1668  *
    1669  * @param object $post_type_object Post type object.
     1668 * @since 4.5.0 Added the ability to pass a post type name in addition to object.
     1669 *
     1670 * @param object $post_type Post type name or object.
    16701671 * @return bool Whether the post type should be considered viewable.
    16711672 */
    1672 function is_post_type_viewable( $post_type_object ) {
    1673     return $post_type_object->publicly_queryable || ( $post_type_object->_builtin && $post_type_object->public );
     1673function is_post_type_viewable( $post_type ) {
     1674    if ( is_scalar( $post_type ) ) {
     1675        $post_type = get_post_type_object( $post_type );
     1676        if ( ! $post_type ) {
     1677            return false;
     1678        }
     1679    }
     1680
     1681    return $post_type->publicly_queryable || ( $post_type->_builtin && $post_type->public );
    16741682}
    16751683
  • trunk/tests/phpunit/tests/post/isPostTypeViewable.php

    r36401 r36402  
    7272        $this->assertTrue( is_post_type_viewable( $page ) );
    7373    }
     74
     75    /**
     76     * @ticket 35609
     77     */
     78    public function test_should_accept_post_type_name() {
     79        register_post_type( 'wptests_pt', array(
     80            'publicly_queryable' => true,
     81            '_builtin' => false,
     82            'public' => false,
     83        ) );
     84
     85        $this->assertTrue( is_post_type_viewable( 'wptests_pt' ) );
     86    }
     87
     88    /**
     89     * @ticket 35609
     90     */
     91    public function test_should_return_false_for_bad_post_type_name() {
     92        $this->assertFalse( is_post_type_viewable( 'foo' ) );
     93    }
    7494}
Note: See TracChangeset for help on using the changeset viewer.