WordPress.org

Make WordPress Core

Ticket #7939: 7939.diff

File 7939.diff, 4.6 KB (added by ionfish, 5 years ago)
  • wp-includes/post-template.php

     
    339339} 
    340340 
    341341/** 
     342 * Display the classes for the body element. 
     343 * 
     344 * @since 2.8.0 
     345 * 
     346 * @param string|array $class One or more classes to add to the class list. 
     347 */ 
     348function body_class( $class = '' ) { 
     349        // Separates classes with a single space, collates classes for body element 
     350        echo 'class="' . join( ' ', get_body_class( $class ) ) . '"'; 
     351} 
     352 
     353/** 
     354 * Retrieve the classes for the body element as an array. 
     355 * 
     356 * @since 2.8.0 
     357 * 
     358 * @param string|array $class One or more classes to add to the class list. 
     359 * @return array Array of classes. 
     360 */ 
     361function get_body_class( $class = '' ) { 
     362        global $wp_query, $current_user; 
     363         
     364        $classes = array(); 
     365         
     366        if ( 'rtl' == get_bloginfo('text_direction') ) 
     367                $classes[] = 'rtl'; 
     368         
     369        if ( is_front_page() ) 
     370                $classes[] = 'home'; 
     371        if ( is_home() ) 
     372                $classes[] = 'blog'; 
     373        if ( is_archive() ) 
     374                $classes[] = 'archive'; 
     375        if ( is_date() ) 
     376                $classes[] = 'date'; 
     377        if ( is_search() ) 
     378                $classes[] = 'search'; 
     379        if ( is_paged() ) 
     380                $classes[] = 'paged'; 
     381        if ( is_attachment() ) 
     382                $classes[] = 'attachment'; 
     383        if ( is_404() ) 
     384                $classes[] = 'error404'; 
     385         
     386        if ( is_single() ) { 
     387                the_post(); 
     388                 
     389                $postID = $wp_query->post->ID; 
     390                $classes[] = 'single postid-' . $postID; 
     391                 
     392                if ( is_attachment() ) { 
     393                        $mime_type = get_post_mime_type(); 
     394                        $mime_prefix = array( 'application/', 'image/', 'text/', 'audio/', 'video/', 'music/' ); 
     395                        $classes[] = 'attachmentid-' . $postID . ' attachment-' . str_replace( $mime_prefix, "", "$mime_type" ); 
     396                } 
     397                 
     398                rewind_posts(); 
     399        } elseif ( is_archive() ) { 
     400                if ( is_author() ) { 
     401                        $author = $wp_query->get_queried_object(); 
     402                        $classes[] = 'author'; 
     403                        $classes[] = 'author-' . $author->user_nicename; 
     404                } elseif ( is_category() ) { 
     405                        $cat = $wp_query->get_queried_object(); 
     406                        $classes[] = 'category'; 
     407                        $classes[] = 'category-' . $cat->slug; 
     408                } elseif ( is_tag() ) { 
     409                        $tags = $wp_query->get_queried_object(); 
     410                        $classes[] = 'tag'; 
     411                        $classes[] = 'tag-' . $tags->slug; 
     412                } 
     413        } elseif ( is_page() ) { 
     414                the_post(); 
     415                 
     416                $pageID = $wp_query->post->ID; 
     417                $page_children = wp_list_pages("child_of=$pageID&echo=0"); 
     418                 
     419                if ( $page_children ) 
     420                        $classes[] = 'page-parent'; 
     421                 
     422                if ( $wp_query->post->post_parent ) 
     423                        $classes[] = 'page-child parent-pageid-' . $wp_query->post->post_parent; 
     424                 
     425                if ( is_page_template() ) 
     426                        $classes[] = 'page-template page-template-' . str_replace( '.php', '-php', get_post_meta( $pageID, '_wp_page_template', true ) ); 
     427                 
     428                rewind_posts(); 
     429        } elseif ( is_search() ) { 
     430                the_post(); 
     431                 
     432                if ( have_posts() ) 
     433                        $classes[] = 'search-results'; 
     434                else 
     435                        $classes[] = 'search-no-results'; 
     436                 
     437                rewind_posts(); 
     438        } 
     439         
     440        if ( is_user_logged_in() ) 
     441                $classes[] = 'logged-in'; 
     442         
     443        $page = $wp_query->get('page'); 
     444         
     445        if ( !$page || $page < 2) 
     446                $page = $wp_query->get('paged'); 
     447         
     448        if ( $page && $page > 1 ) { 
     449                $classes[] = 'paged-' . $page; 
     450                 
     451                if ( is_single() ) 
     452                        $classes[] = 'single-paged-' . $page; 
     453                elseif ( is_page() ) 
     454                        $classes[] = 'page-paged-' . $page; 
     455                elseif ( is_category() ) 
     456                        $classes[] = 'category-paged-' . $page; 
     457                elseif ( is_tag() ) 
     458                        $classes[] = 'tag-paged-' . $page; 
     459                elseif ( is_date() ) 
     460                        $classes[] = 'date-paged-' . $page; 
     461                elseif ( is_author() ) 
     462                        $classes[] = 'author-paged-' . $page; 
     463                elseif ( is_search() ) 
     464                        $classes[] = 'search-paged-' . $page; 
     465        } 
     466         
     467        if ( !empty($class) ) { 
     468                if ( !is_array( $class ) ) 
     469                        $class = preg_split('#\s+#', $class); 
     470                $classes = array_merge($classes, $class); 
     471        } 
     472         
     473        return apply_filters('body_class', $classes, $class); 
     474} 
     475 
     476/** 
    342477 * Whether post requires password and correct password has been provided. 
    343478 * 
    344479 * @since 2.7.0 
  • wp-content/themes/classic/header.php

     
    2222        <?php wp_head(); ?> 
    2323</head> 
    2424 
    25 <body> 
     25<body <?php body_class(); ?>> 
    2626<div id="rap"> 
    2727<h1 id="header"><a href="<?php bloginfo('url'); ?>/"><?php bloginfo('name'); ?></a></h1> 
    2828 
  • wp-content/themes/default/header.php

     
    3232 
    3333<?php wp_head(); ?> 
    3434</head> 
    35 <body> 
     35<body <?php body_class(); ?>> 
    3636<div id="page"> 
    3737 
    3838