WordPress.org

Make WordPress Core

Changeset 37308


Ignore:
Timestamp:
04/26/16 17:04:25 (13 months ago)
Author:
rachelbaker
Message:

Post Thumbnails: When using add_theme_support( ‘post-thumbnails’, array( $post_types) ) merge the supported post_types.

Allow the adding of post-thumbnail support for one or more post_types without unsetting any previously added post_types. This matches the behavior of other uses of add_theme_support() and the expectations of a function with a prefix of “add”.
To unset post-thumbnail support use remove_theme_support() instead.

Fixes #22080

Props alexkingorg, jmichaelward, and flixos90.

Location:
trunk
Files:
2 edited

Legend:

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

    r37092 r37308  
    15361536 
    15371537    switch ( $feature ) { 
     1538        case 'post-thumbnails': 
     1539            // All post types are already supported. 
     1540            if ( true === get_theme_support( 'post-thumbnails' ) ) { 
     1541                return; 
     1542            } 
     1543 
     1544            /* 
     1545             * Merge post types with any that already declared their support 
     1546             * for post thumbnails. 
     1547             */ 
     1548            if ( is_array( $args[0] ) && is_array( $_wp_theme_features['post-thumbnails'][0] ) ) { 
     1549                $post_types = array_unique( array_merge( $args[0], $_wp_theme_features['post-thumbnails'][0] ) ); 
     1550 
     1551                $args = array( $post_types ); 
     1552            } 
     1553 
     1554            break; 
     1555 
    15381556        case 'post-formats' : 
    15391557            if ( is_array( $args[0] ) ) { 
  • trunk/tests/phpunit/tests/theme/support.php

    r30148 r37308  
    5151        remove_theme_support( 'post-thumbnails' ); 
    5252        $this->assertFalse( current_theme_supports( 'post-thumbnails' ) ); 
     53    } 
     54 
     55    /** 
     56     * @ticket 22080 
     57     */ 
     58    public function test_post_thumbnails_mixed_args() { 
     59        add_theme_support( 'post-thumbnails', array( 'post', 'page' ) ); 
     60        add_theme_support( 'post-thumbnails', array( 'page' ) ); 
     61        $this->assertTrue( current_theme_support( 'post-thumbnails', 'post' ) ); 
     62        $this->assertFalse( current_theme_supports( 'post-thumbnails', 'book' ) ); 
     63        $this->assertEquals( 
     64            array( 0 => array( 'post', 'page' ) ), 
     65            get_theme_support( 'post-thumbnails' ) 
     66        ); 
     67 
     68        add_theme_support( 'post-thumbnails' ); 
     69        $this->assertTrue( current_theme_supports( 'post-thumbnails', 'book' ) ); 
    5370    } 
    5471 
Note: See TracChangeset for help on using the changeset viewer.