WordPress.org

Make WordPress Core

Ticket #12588: is_single.diff

File is_single.diff, 3.0 KB (added by scribu, 5 years ago)

add $post_type parameter to is_singule()

  • wp-includes/post.php

     
    681681} 
    682682 
    683683/** 
    684  * Checks if a post type is registered. Can also check if the current or specified post is of a post type. 
     684 * Check if a post type is registered. 
    685685 * 
    686686 * @since 3.0.0 
     687 * @uses get_post_type_object() 
     688 * 
     689 * @param string $types Type to check. 
     690 * @return bool 
     691 */ 
     692function is_post_type( $type ) { 
     693        return (bool) get_post_type_object($type); 
     694} 
     695 
     696/** 
     697 * Check if the current or specified post is of a given post type. 
     698 * 
     699 * @since 3.0.0 
    687700 * @uses get_post_type() 
    688701 * 
    689  * @param string|array $types Type or types to check. Defaults to all post types. 
     702 * @param string|array $types Type or types to check. 
    690703 * @param int $id Post ID. Defaults to current ID. 
    691704 * @return bool 
    692705 */ 
    693 function is_post_type( $types = false, $id = false ) { 
    694         if ( $id ) { 
    695                 $types = ( $types === false ) ? get_post_types() : (array) $types; 
    696  
    697                 return in_array( get_post_type( $id ), $types ); 
    698         } 
    699  
    700         return (bool) get_post_type_object($types); 
     706function is_post_of_type( $types, $id = false ) { 
     707        return in_array( get_post_type( $id ), (array) $types ); 
    701708} 
    702709 
    703710/** 
  • wp-includes/query.php

     
    134134 * @param string|int $author Optional. Is current page this author. 
    135135 * @return bool True if page is author or $author (if set). 
    136136 */ 
    137 function is_author ($author = '') { 
     137function is_author($author = '') { 
    138138        global $wp_query; 
    139139 
    140140        if ( !$wp_query->is_author ) 
     
    169169 * @param string|array $category Optional. 
    170170 * @return bool 
    171171 */ 
    172 function is_category ($category = '') { 
     172function is_category($category = '') { 
    173173        global $wp_query; 
    174174 
    175175        if ( !$wp_query->is_category ) 
     
    398398 * @param mixed $page Either page or list of pages to test against. 
    399399 * @return bool 
    400400 */ 
    401 function is_page ($page = '') { 
     401function is_page($page = '') { 
    402402        global $wp_query; 
    403403 
    404404        if ( !$wp_query->is_page ) 
     
    510510 * @uses $wp_query 
    511511 * 
    512512 * @param mixed $post Either post or list of posts to test against. 
     513 * @param string|array $post_types Optional. Post type slug or slugs to check in current query. 
    513514 * @return bool 
    514515 */ 
    515 function is_single($post = '') { 
     516function is_single($post = '', $post_types = '') { 
    516517        global $wp_query; 
    517518 
    518519        if ( !$wp_query->is_single ) 
    519520                return false; 
    520521 
    521         if ( empty( $post) ) 
    522                 return true; 
    523  
    524522        $post_obj = $wp_query->get_queried_object(); 
    525523 
     524        if ( empty($post) && !empty($post_types) ) 
     525                return in_array($post_obj->post_type, (array) $post_types); 
     526 
    526527        $post = (array) $post; 
    527528 
    528529        if ( in_array( $post_obj->ID, $post ) ) 
     
    12261227         * 
    12271228         * @param string|array $query 
    12281229         */ 
    1229         function parse_query($query ) { 
     1230        function parse_query($query) { 
    12301231                if ( !empty($query) || !isset($this->query) ) { 
    12311232                        $this->init(); 
    12321233                        if ( is_array($query) )