WordPress.org

Make WordPress Core

Ticket #11439: 11439.patch

File 11439.patch, 1.8 KB (added by hakre, 8 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';