Make WordPress Core

Ticket #56586: 56586.diff

File 56586.diff, 1.5 KB (added by david.binda, 3 years ago)
  • src/wp-includes/post.php

     
    62076207                return $pages;
    62086208        }
    62096209
    6210         // Sanitize before caching so it'll only get done once.
    6211         $num_pages = count( $pages );
    6212         for ( $i = 0; $i < $num_pages; $i++ ) {
    6213                 $pages[ $i ] = sanitize_post( $pages[ $i ], 'raw' );
    6214         }
    6215 
    62166210        // Update cache.
    62176211        update_post_cache( $pages );
    62186212
  • tests/phpunit/tests/post/updatePostCache.php

     
    138138                        'The filter is not set to "raw"'
    139139                );
    140140        }
     141
     142        /**
     143         * Ensure filter = raw is always set via get_pages.
     144         *
     145         * @ticket 56586
     146         */
     147        public function test_get_pages_caches_page_filter_is_always_raw() {
     148                $page_id = self::factory()->post->create( array( 'post_type' => 'page' ) );
     149                wp_cache_delete( $page_id, 'posts' );
     150
     151                get_pages();
     152
     153                $cached_page = wp_cache_get( $page_id, 'posts' );
     154
     155                $this->assertIsObject(
     156                        $cached_page,
     157                        'The cached page is not an object'
     158                );
     159
     160                $this->assertObjectHasAttribute(
     161                        'filter',
     162                        $cached_page,
     163                        'The cached page does not have a "filter" property'
     164                );
     165
     166                $this->assertSame(
     167                        'raw',
     168                        $cached_page->filter,
     169                        'The filter is not set to "raw"'
     170                );
     171        }
    141172}