WordPress.org

Make WordPress Core

Ticket #11439: 11439.patch

File 11439.patch, 1.8 KB (added by hakre, 5 years ago)

Patch without SQL modification

  • wp-includes/post-template.php

     
    363363 * @return array Array of classes. 
    364364 */ 
    365365function get_body_class( $class = '' ) { 
    366         global $wp_query, $wpdb, $current_user; 
     366        global $wp_query, $current_user; 
    367367 
    368368        $classes = array(); 
    369369 
     
    388388                $classes[] = 'error404'; 
    389389 
    390390        if ( is_single() ) { 
    391                 $wp_query->post = $wp_query->posts[0]; 
    392                 setup_postdata($wp_query->post); 
    393  
    394                 $postID = $wp_query->post->ID; 
     391                $postID = $wp_query->get_queried_object_id(); 
     392                 
    395393                $classes[] = 'single postid-' . $postID; 
    396394 
    397395                if ( is_attachment() ) { 
    398                         $mime_type = get_post_mime_type(); 
     396                        $mime_type = get_post_mime_type($postID); 
    399397                        $mime_prefix = array( 'application/', 'image/', 'text/', 'audio/', 'video/', 'music/' ); 
    400398                        $classes[] = 'attachmentid-' . $postID; 
    401399                        $classes[] = 'attachment-' . str_replace($mime_prefix, '', $mime_type); 
     
    417415        } elseif ( is_page() ) { 
    418416                $classes[] = 'page'; 
    419417 
    420                 $wp_query->post = $wp_query->posts[0]; 
    421                 setup_postdata($wp_query->post); 
     418                $pageID = $wp_query->get_queried_object_id(); 
    422419 
    423                 $pageID = $wp_query->post->ID; 
     420                $post = get_page($pageID); 
    424421 
    425422                $classes[] = 'page-id-' . $pageID; 
    426423 
    427424                if ( $wpdb->get_var( $wpdb->prepare("SELECT ID FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'page' LIMIT 1", $pageID) ) ) 
    428425                        $classes[] = 'page-parent'; 
    429426 
    430                 if ( $wp_query->post->post_parent ) { 
     427                if ( $post->post_parent ) { 
    431428                        $classes[] = 'page-child'; 
    432                         $classes[] = 'parent-pageid-' . $wp_query->post->post_parent; 
     429                        $classes[] = 'parent-pageid-' . $post->post_parent; 
    433430                } 
    434431                if ( is_page_template() ) { 
    435432                        $classes[] = 'page-template';