WordPress.org

Make WordPress Core

Ticket #11092: unnecessary_global_tampering.11092.diff

File unnecessary_global_tampering.11092.diff, 1.9 KB (added by filosofo, 4 years ago)
  • wp-includes/post-template.php

     
    361361 * @return array Array of classes. 
    362362 */ 
    363363function get_body_class( $class = '' ) { 
    364         global $wp_query, $wpdb, $current_user; 
     364        global $wp_query, $current_user; 
    365365 
    366366        $classes = array(); 
    367367 
     
    386386                $classes[] = 'error404'; 
    387387 
    388388        if ( is_single() ) { 
    389                 $wp_query->post = $wp_query->posts[0]; 
    390                 setup_postdata($wp_query->post); 
    391  
    392                 $postID = $wp_query->post->ID; 
     389                $postID = $wp_query->get_queried_object_id(); 
     390                 
    393391                $classes[] = 'single postid-' . $postID; 
    394392 
    395393                if ( is_attachment() ) { 
    396                         $mime_type = get_post_mime_type(); 
     394                        $mime_type = get_post_mime_type($postID); 
    397395                        $mime_prefix = array( 'application/', 'image/', 'text/', 'audio/', 'video/', 'music/' ); 
    398396                        $classes[] = 'attachmentid-' . $postID; 
    399397                        $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type); 
     
    415413        } elseif ( is_page() ) { 
    416414                $classes[] = 'page'; 
    417415 
    418                 $wp_query->post = $wp_query->posts[0]; 
    419                 setup_postdata($wp_query->post); 
     416                $pageID = $wp_query->get_queried_object_id(); 
    420417 
    421                 $pageID = $wp_query->post->ID; 
     418                $post = get_page($pageID); 
    422419 
    423420                $classes[] = 'page-id-' . $pageID; 
    424421 
    425                 if ( $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'page' LIMIT 1", $pageID) ) ) 
     422                $children = get_pages(array('hierarchical' => false, 'parent' => $pageID, 'number' => 1)); 
     423                if ( ! empty( $children ) ) { 
    426424                        $classes[] = 'page-parent'; 
     425                } 
    427426 
    428                 if ( $wp_query->post->post_parent ) { 
     427                if ( $post->post_parent ) { 
    429428                        $classes[] = 'page-child'; 
    430                         $classes[] = 'parent-pageid-' . $wp_query->post->post_parent; 
     429                        $classes[] = 'parent-pageid-' . $post->post_parent; 
    431430                } 
    432431                if ( is_page_template() ) { 
    433432                        $classes[] = 'page-template';