WordPress.org

Make WordPress Core

Ticket #11092: unnecessary_global_tampering.11092.diff

File unnecessary_global_tampering.11092.diff, 1.9 KB (added by filosofo, 9 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';