php body class,详解body_class()函数在WordPress中从描述、使用与输出

摘要:wordpress程序的body_class()函数是一个很神奇的存在,他是一个变量,可以根据程序内核固定的写法通过当前...

wordpress程序的body_class()函数是一个很神奇的存在,他是一个变量,可以根据程序内核固定的写法通过当前页面类型的判断输入不同的class选择器,如首页,页面,分类,文章等等,当然既然是变量那我们还是可以重新设定他在一些主题内的写法的,只要在主函数文件内编译下固定的css属性值即可。

认识body_class()是什么

body_class()函数是在wordpress程序2.7版本添加的功能,并且一切延续到现在。即是class的生成。是根据对网站当前页面位置的判读输出的class语句结构。

怎样使用body_class

body_class 的使用方法很简单,只需要在body代码下替换掉原来的 body 标签即可:

1

body_class()在每个页面输入的class名称

首页(Front Page)

任意的首页都包含 home 类。

如果网站首页显示文章列表,那么输出:home blog 这两个类。

如果网站首页显示静态页面,将会输出:home page 类。

博客文章索引页面

博客文章索引页面都包含 blog 类。

如果博客文章页面显示在首页,将会输出:home blog 类。

如果博客文章显示在某个指定的静态页面中,将会输出:page blog 类。

文章页面(Single Post)

所有的文章都会输出:single postid-{ID} 这两个类(ID 为当前文章唯一的 ID )。

普通的文章页面输出:single-post 类

自定义文章类型的文章页面输出:single-{posttype} 类

如果支持文章格式的话:

指定了文章格式的文章会输出:single-format-{format}

如果当前文章没有指定文章格式:single-format-standard

对于附件页面(attachment pages)会输出:attachment single-attachment attachmentid-{ID} attachment-mime-type

存档页面(Archives)

存档页面都有 archive 类。

日期(Date)存档索引页面输出:date

自定义文章类型的存档索引页面输出:post-type-archive post-type-archive-{posttype}

作者存档页面输出:archive author author-{user_nickname}

标签存档页面输出:archive tag tag-{slug}

分类存档页面输出:archive category category-{slug}

自定义分类(Taxonomy)存档页面输出:tax-{taxonomy} term-{term} term-{ID}

自定义文章格式存档页面输出:tax-{post_format} term-post-format-{format} term-{ID}

页面(Page)

所有静态页面都输出 page 和 page-id-{ID} 类。

页面层次中:

父级页面输出:page-parent

子级页面输出:page-child parent-pageid-{ID}

自定义页面模版中:

应用了页面模版的页面会输出:page-template page-template-{directory}{filename}_php

没有指定页面模版的页面会输出:page-template-default

搜索页面

搜索结果页面都有 search 类。

带有结果的搜索页面:search-results

没有结果的搜索页面:search-no-results

分页页面或者多页码的页面

分页页面通常是指文章索引页面底部的翻页。

此外文章内也有分页页面。一个页面或者文章太长的时候,通常会截断成多个子页面,通过翻页查看下一部份内容。对于所有带有页码的页面,都包含 paged 类。当前页面处于某个带有页码页面的第二页之后的页面,会输出 paged 和 paged-{n} 类。

文章带页码页面:single-paged-{n}

静态页面带页码:page-paged-{n}

分类存档索引页面:category-paged-{n}

标签存档索引页面:tag-paged-{n}

日期存档索引页面:date-paged-{n}

作者存档索引页面:author-paged-{n}

搜索结果页面:search-paged-{n}

自定义文章类型索引页面:post-type-paged-{n}

404 错误页面

错误页面输出 error404 类。

登陆

当用户登陆 WordPress 之后,会在所有页面输出 logged-in 类。

文字方向

如果文字的方向设置为了 “右向左” 就会输出 rtl 类。

自定义背景

如果使用了自定义背景功能来显示背景图片或者颜色,会输出 custom-background 类。

超级管理员工具条

如果管理员工具条在顶部出现了,会输出: admin-bar no-customize-support 类。

介绍完了 body_class 函数根据当前页面自动输出类的规则之后,我们来介绍一下如何自定义输出的类。

自定义 body_class 函数输出的类

在前面的使用中已经提到了这个函数的唯一的参数,传递进去值就会输出相应的参数,这里不再赘述。下面介绍一下通过条件判断和过滤器自定义输出类。

通过使用 body_class filter 来实现,大体框架如下:

add_filter(‘body_class’,’wpjam_class_names’);

function wpjam_class_names($classes) {

$classes[] = ‘class-name’;

return $classes;

}

上例中,我们为 classes 这个数组变量增加了一个新键值 “class-name” 并返回给 body_class filter ,即可实现在所有页面中输出 “class-name” 这个类。

但是这样自定义是完全没有什么价值的,我们往往希望通过更详细的判断语句来判断出某些特定的页面,然后增加相应的类。这样,就需要 WordPress 强大的条件判断标签了。这里推荐一下 我爱水煮鱼 博客翻译编写的 WordPress 条件判断标签及其使用方法。下面就来试一下:

add_filter(‘body_class’,’wpjam_class_names’);

function wpjam_class_names($classes) {

if ( is_page( ‘some-page’ ))

$classes[] = ‘some-page’;

return $classes;

}

上面例子很简单,使用 is_page 判断标签判断当前页面的 slug 是否为 some-page ,如果是,就为当前页面的 body 标签增加 some-page 类。当然,因为默认输出的已经比较详细了,所以这个例子只作为抛砖引玉之用。

需要注意一点,WordPress 系统在不断的升级,可能会对本文中的输出类的规则有所变更,如果你发现某个规则是错误的,请以实际输出为准。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值