body_class

评论(0)

body_class 同之前讲过的post_class 函数十分相似,主要用于输出一个个性化的唯一的body class的值,当然你也可以手工加入一些特定的值。下面我们来讲一下这个函数。

描述

body_class函数在WordPress 中主要用来输出body的class值,而这个值在不同的页面会显示的不同。
通过控制不同class的样式,可以让你的博客炫丽起来。

<body <?php body_class($class); ?>>

$class是你的自定义class

可能生成的值

.rtl {}
.home {}
.blog {}
.archive {}
.date {}
.search {}
.paged {}
.attachment {}
.error404 {}
.single postid-(id) {}
.attachmentid-(id) {}
.attachment-(mime-type) {}
.author {}
.author-(user_nicename) {}
.category {}
.category-(slug) {}
.tag {}
.tag-(slug) {}
.page-parent {}
.page-child parent-pageid-(id) {}
.page-template page-template-(template file name) {}
.search-results {}
.search-no-results {}
.logged-in {}
.paged-(page number) {}
.single-paged-(page number) {}
.page-paged-(page number) {}
.category-paged-(page number) {}
.tag-paged-(page number) {}
.date-paged-(page number) {}
.author-paged-(page number) {}
.search-paged-(page number) {}

因为每个页面的性质不同,所以class的值可能是多个以上参数并列的。

过滤body_class

可挂载过滤器的标签名称为’body_class’
下面是两个很简单的例子,请自行揣摩

// 增加一个自定义的class值
//下一句是挂在过滤器
add_filter('body_class','add_class_names');
function add_class_names($classes) {
	// 增加的class名'class-1' 
	$classes[] = 'class-1' ;
	// 过滤完毕,return输出
	return $classes;
}
// 给body_class 和 post_class 都增加以分类别名为名称的class值
function category_id_class($classes) {
	global $post;
//遍历当前文章的所有分类
	foreach((get_the_category($post->ID)) as $category)
//将分类值并入class值所在的默认数组中。
		$classes[] = $category->category_nicename;
	return $classes;
}
//挂载到'post_class'标签
add_filter('post_class', 'category_id_class');
//挂载到'body_class'标签
add_filter('body_class', 'category_id_class');

总结

说一千,道一万不如你亲自试一下。
官方文档地址:body_class





转载请注明转自: body_class