WordPress.org

Make WordPress Core

Changeset 39236


Ignore:
Timestamp:
11/15/16 03:36:13 (4 months ago)
Author:
peterwilsoncc
Message:

Posts, Post Types: Improve sanitisation of templates' post types.

Prevents post type templates ignoring post types due to invalid characters. Each entry in the Template Post Type comment is run through sanitize_key() to match the sanitisation used by register_post_type().

Fixes #38766.

Location:
trunk
Files:
7 added
2 edited

Legend:

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

    r39168 r39236  
    10391039 
    10401040                foreach ( $types as $type ) { 
    1041                     $type = trim( $type ); 
     1041                    $type = sanitize_key( $type ); 
    10421042                    if ( ! isset( $post_templates[ $type ] ) ) { 
    10431043                        $post_templates[ $type ] = array(); 
  • trunk/tests/phpunit/tests/admin/includesTheme.php

    r39168 r39236  
    8888 
    8989    /** 
     90     * @ticket 38766 
     91     */ 
     92    function test_page_templates_for_post_types_with_trailing_periods() { 
     93        $theme = wp_get_theme( 'page-templates' ); 
     94        $this->assertNotEmpty( $theme ); 
     95 
     96        switch_theme( $theme['Template'], $theme['Stylesheet'] ); 
     97 
     98        $this->assertEqualSetsWithIndex( array( 
     99            'No Trailing Period' => '38766/no-trailing-period-post-types.php', 
     100            'Trailing Period.' => '38766/trailing-period-post-types.php', 
     101            'Trailing Comma,' => '38766/trailing-comma-post-types.php', 
     102            'Trailing Period, White Space.' => '38766/trailing-period-whitespace-post-types.php', 
     103            'Trailing White Space, Period.' => '38766/trailing-whitespace-period-post-types.php', 
     104            'Tilde in Post Type.' => '38766/tilde-post-types.php', 
     105        ), get_page_templates( null, 'period' ) ); 
     106        $this->assertEqualSetsWithIndex( array( 
     107            'No Trailing Period' => '38766/no-trailing-period-post-types.php', 
     108            'Trailing Period.' => '38766/trailing-period-post-types.php', 
     109            'Trailing Comma,' => '38766/trailing-comma-post-types.php', 
     110            'Trailing Period, White Space.' => '38766/trailing-period-whitespace-post-types.php', 
     111            'Trailing White Space, Period.' => '38766/trailing-whitespace-period-post-types.php', 
     112        ), get_page_templates( null, 'full-stop' ) ); 
     113    } 
     114 
     115    /** 
    90116     * @ticket 38696 
    91117     */ 
Note: See TracChangeset for help on using the changeset viewer.