> WordPress开发手册 > body_class

body_class


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' );



上一篇:
下一篇: