mirror of
https://github.com/WordPress/WordPress.git
synced 2024-12-22 17:18:32 +01:00
body_class(). Props ionfish. fixes #7939
git-svn-id: http://svn.automattic.com/wordpress/trunk@10485 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
19e01565d4
commit
af5c60f83f
@ -22,7 +22,7 @@
|
||||
<?php wp_head(); ?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<body <?php body_class(); ?>>
|
||||
<div id="rap">
|
||||
<h1 id="header"><a href="<?php bloginfo('url'); ?>/"><?php bloginfo('name'); ?></a></h1>
|
||||
|
||||
|
@ -32,7 +32,7 @@ if ( !empty($withcomments) && !is_single() ) {
|
||||
|
||||
<?php wp_head(); ?>
|
||||
</head>
|
||||
<body>
|
||||
<body <?php body_class(); ?>>
|
||||
<div id="page">
|
||||
|
||||
|
||||
|
@ -338,6 +338,141 @@ function get_post_class( $class = '', $post_id = null ) {
|
||||
return apply_filters('post_class', $classes, $class, $post_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display the classes for the body element.
|
||||
*
|
||||
* @since 2.8.0
|
||||
*
|
||||
* @param string|array $class One or more classes to add to the class list.
|
||||
*/
|
||||
function body_class( $class = '' ) {
|
||||
// Separates classes with a single space, collates classes for body element
|
||||
echo 'class="' . join( ' ', get_body_class( $class ) ) . '"';
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the classes for the body element as an array.
|
||||
*
|
||||
* @since 2.8.0
|
||||
*
|
||||
* @param string|array $class One or more classes to add to the class list.
|
||||
* @return array Array of classes.
|
||||
*/
|
||||
function get_body_class( $class = '' ) {
|
||||
global $wp_query, $current_user;
|
||||
|
||||
$classes = array();
|
||||
|
||||
if ( 'rtl' == get_bloginfo('text_direction') )
|
||||
$classes[] = 'rtl';
|
||||
|
||||
if ( is_front_page() )
|
||||
$classes[] = 'home';
|
||||
if ( is_home() )
|
||||
$classes[] = 'blog';
|
||||
if ( is_archive() )
|
||||
$classes[] = 'archive';
|
||||
if ( is_date() )
|
||||
$classes[] = 'date';
|
||||
if ( is_search() )
|
||||
$classes[] = 'search';
|
||||
if ( is_paged() )
|
||||
$classes[] = 'paged';
|
||||
if ( is_attachment() )
|
||||
$classes[] = 'attachment';
|
||||
if ( is_404() )
|
||||
$classes[] = 'error404';
|
||||
|
||||
if ( is_single() ) {
|
||||
the_post();
|
||||
|
||||
$postID = $wp_query->post->ID;
|
||||
$classes[] = 'single postid-' . $postID;
|
||||
|
||||
if ( is_attachment() ) {
|
||||
$mime_type = get_post_mime_type();
|
||||
$mime_prefix = array( 'application/', 'image/', 'text/', 'audio/', 'video/', 'music/' );
|
||||
$classes[] = 'attachmentid-' . $postID . ' attachment-' . str_replace( $mime_prefix, "", "$mime_type" );
|
||||
}
|
||||
|
||||
rewind_posts();
|
||||
} elseif ( is_archive() ) {
|
||||
if ( is_author() ) {
|
||||
$author = $wp_query->get_queried_object();
|
||||
$classes[] = 'author';
|
||||
$classes[] = 'author-' . $author->user_nicename;
|
||||
} elseif ( is_category() ) {
|
||||
$cat = $wp_query->get_queried_object();
|
||||
$classes[] = 'category';
|
||||
$classes[] = 'category-' . $cat->slug;
|
||||
} elseif ( is_tag() ) {
|
||||
$tags = $wp_query->get_queried_object();
|
||||
$classes[] = 'tag';
|
||||
$classes[] = 'tag-' . $tags->slug;
|
||||
}
|
||||
} elseif ( is_page() ) {
|
||||
the_post();
|
||||
|
||||
$pageID = $wp_query->post->ID;
|
||||
$page_children = wp_list_pages("child_of=$pageID&echo=0");
|
||||
|
||||
if ( $page_children )
|
||||
$classes[] = 'page-parent';
|
||||
|
||||
if ( $wp_query->post->post_parent )
|
||||
$classes[] = 'page-child parent-pageid-' . $wp_query->post->post_parent;
|
||||
|
||||
if ( is_page_template() )
|
||||
$classes[] = 'page-template page-template-' . str_replace( '.php', '-php', get_post_meta( $pageID, '_wp_page_template', true ) );
|
||||
|
||||
rewind_posts();
|
||||
} elseif ( is_search() ) {
|
||||
the_post();
|
||||
|
||||
if ( have_posts() )
|
||||
$classes[] = 'search-results';
|
||||
else
|
||||
$classes[] = 'search-no-results';
|
||||
|
||||
rewind_posts();
|
||||
}
|
||||
|
||||
if ( is_user_logged_in() )
|
||||
$classes[] = 'logged-in';
|
||||
|
||||
$page = $wp_query->get('page');
|
||||
|
||||
if ( !$page || $page < 2)
|
||||
$page = $wp_query->get('paged');
|
||||
|
||||
if ( $page && $page > 1 ) {
|
||||
$classes[] = 'paged-' . $page;
|
||||
|
||||
if ( is_single() )
|
||||
$classes[] = 'single-paged-' . $page;
|
||||
elseif ( is_page() )
|
||||
$classes[] = 'page-paged-' . $page;
|
||||
elseif ( is_category() )
|
||||
$classes[] = 'category-paged-' . $page;
|
||||
elseif ( is_tag() )
|
||||
$classes[] = 'tag-paged-' . $page;
|
||||
elseif ( is_date() )
|
||||
$classes[] = 'date-paged-' . $page;
|
||||
elseif ( is_author() )
|
||||
$classes[] = 'author-paged-' . $page;
|
||||
elseif ( is_search() )
|
||||
$classes[] = 'search-paged-' . $page;
|
||||
}
|
||||
|
||||
if ( !empty($class) ) {
|
||||
if ( !is_array( $class ) )
|
||||
$class = preg_split('#\s+#', $class);
|
||||
$classes = array_merge($classes, $class);
|
||||
}
|
||||
|
||||
return apply_filters('body_class', $classes, $class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Whether post requires password and correct password has been provided.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user