WordPress.org

Make WordPress Core

Ticket #22223: 22223.diff

File 22223.diff, 1.4 KB (added by ryan, 6 years ago)

Require properties to match

  • wp-includes/post.php

     
    388388                $_post = $post;
    389389        } elseif ( is_object( $post ) ) {
    390390                if ( empty( $post->filter ) ) {
    391                         $_post = sanitize_post( $post, 'raw' );
    392                         wp_cache_add( $post->ID, $_post, 'posts' );
     391                        $core_props = WP_Post::get_core_property_list();
     392                        $props = array_keys( get_object_vars( $post ) );
     393                        if ( ( count( $core_props ) == count ( $props ) ) && ( ! array_diff( $core_props, $props ) ) ) {
     394                                $_post = sanitize_post( $post, 'raw' );
     395                                wp_cache_add( $post->ID, $_post, 'posts' );
     396                        } else {
     397                                $_post = sanitize_post( $post, 'raw' );
     398                        }
    393399                        $_post = new WP_Post( $_post );
    394400                } elseif ( 'raw' == $post->filter ) {
    395401                        $_post = new WP_Post( $post );
     
    542548
    543549                return $post;
    544550        }
     551
     552        public static function get_core_property_list() {
     553                return array (
     554                                'ID',
     555                                'post_author',
     556                                'post_date',
     557                                'post_date_gmt',
     558                                'post_content',
     559                                'post_title',
     560                                'post_excerpt',
     561                                'post_status',
     562                                'comment_status',
     563                                'ping_status',
     564                                'post_password',
     565                                'post_name',
     566                                'to_ping',
     567                                'pinged',
     568                                'post_modified',
     569                                'post_modified_gmt',
     570                                'post_content_filtered',
     571                                'post_parent',
     572                                'guid',
     573                                'menu_order',
     574                                'post_type',
     575                                'post_mime_type',
     576                                'comment_count',
     577                );
     578        }
    545579}
    546580
    547581/**