关于post_class()函数

» 2010-10-03 62条评论

WordPress官方最新的主题审核中规定一定要用 post_class() 这个函数生成 classname 列表,但自己在使用这个函数时遇到一些问题和解决方法,下面说说。

一、关于 post_class() 函数

这个函数是 WordPress 2.7 时新加的函数,这个函数会根据主题页面生成预置的classname和针对一些页面的classname,方便主题开发者利用这些class来定义主题样式

用法:

<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>

例如:当前页面是“dancing”分类存档页面,用上面的代码就会生成如下classname

<div id="post-4564" class="post post-4564 category-48 category-dancing logged-in">

具体参考官方文档:http://codex.wordpress.org/Template_Tags/post_class

二、在 post_class() 函数加入自定义 classname 并输出

这次升级 zBench 主题,在使用这个函数时遇到一个比较囧的情况:zBench 主题的页面模板 page.php 和 single.php 本身定义了一个名为 post-single 的class来个性化这2个页面样式的,可用了这个函数后不知道怎么插入,囧~

假如这样:
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?> class="post-single">
就不输出后面的 class="post-single"

假如这样:
<div id="post-<?php the_ID(); ?>" class="post-single" <?php post_class(); ?>>
就不输出<?php post_class(); ?>生成的class

后来发现原来是自己不够认真看官方文档:(唉,英文差……)

Parameters

class

(string or array) (optional) One or more classes to add to the class attribute, separated by a single space.
Default: null

囧~原来直接在函数里面加入自定义classname就能输出

例如上面的例子中:
<div id="post-<?php the_ID(); ?>" <?php post_class('post-single'); ?>>
就会生成
<div id="post-4564" class="post post-4564 category-48 category-dancing logged-in post-single">

如果是多个class就用空格分开即可,如 post_class('post-single zww')

说完,继续无聊地过国庆……

zww
or
oooo

“关于post_class()函数”有62条评论

  1. :?: 不懂函数。。。
    沙发

  2. alexin says:

    额,,居然有板凳。。。。 :eek:

    1. zwwooooo says:

      @alexin
      国庆都去玩了

  3. 竹下无为梦 says:

    祝你把主题越弄越好啊。以后帮你推荐。

    1. zwwooooo says:

      @竹下无为梦
      谢谢,主题就这样了,没啥好弄了

  4. Kars says:

    占楼~不过,我用的主题里 貌似 没有 用到 这个函数 额、、

    1. zwwooooo says:

      @Kars
      WP官方主题目录中最新的主题/最近更新的主题才会有这个函数,官方要求的。

  5. QiQiBoY says:

    这个函数生成的class太多了,感觉不仅增加了页面上无用的标签、属性,而且破坏了dom的整齐的美感。。。

    1. zwwooooo says:

      @QiQiBoY
      如果是自己用的主题不需要这样,我写的是针对官方的

  6. 小淫z,你应该考虑一下照顾我的感受。在你的淫文里面 - - 加几句我能听懂的行吗?

    1. zwwooooo says:

      @❤•终于°
      不要把问题都推到他人身上,要么自己学一下要么飘过 :mrgreen:

    2. @zwwooooo
      我不学也不飘 - - 我水。

    3. zwwooooo says:

      @❤•终于°
      很好,我也水~

    4. zwwooooo says:

      @❤•终于°
      好吧,我开闸 :mrgreen:

  7. 飞晏 says:

    无聊的国庆你这里人也蛮少的
    最近学着做主题插件 你和Winy等大师的博客都是免费教程啊 哈哈

    1. zwwooooo says:

      @飞晏
      这几天大家都去玩了,所以人也很少了

  8. 万戈 says:

    咱的主题不需要官方认证,直接 class="" :mrgreen:

    1. zwwooooo says:

      @万戈
      哈哈,你不需要,你的免费主题不是针对大众的。

  9. Rayee says:

    个人主题的确不需要这么累赘的东东,第一次看那个官方2010主题,我说这个post_class()干嘛用的,后来看文档才知道。

    1. zwwooooo says:

      @Rayee
      对啊,但是大众的主题就需要鸟

  10. fblue says:

    这样其实挺方便地,想添加个性的class直接添加参数就ok了。不过id的写法与class的写法就不和谐了,官方应该应该把id=“”也搞掉 :idea:

    1. zwwooooo says:

      @fblue
      主要是考虑兼容性吧

  11. 恩~ 仔细阅读官方文档太重要了……
    国庆快乐……

    1. zwwooooo says:

      @孤夜狂狼
      英文不好,很容易飘过

  12. clyee says:

    哎 都改技术文章了, 话说回来你也不注重留言数,这样好。

    1. zwwooooo says:

      @clyee
      技术文章?我一直都有这类文章,虽然技术含量不高

  13. 德意 says:

    说完国庆已经过了一半。

    1. zwwooooo says:

      @德意
      对,法定的已经过完了

  14. 小王子 says:

    留记号,用处大大地。

  15. 小邪 says:

    这里木有国庆,╮(╯▽╰)╭,鸭梨啊鸭梨 ~

    1. zwwooooo says:

      @小邪
      有钱天天国庆,没钱啥也不是

  16. 阿修 says:

    确实是这样滴~~

    1. zwwooooo says:

      @阿修
      我却不知道,囧

  17. 整点轻松的嘛,不要动不动代码函数什么的

    1. zwwooooo says:

      @yesureadmin
      你可以去“无聊吧”博客,那里很多轻松的,我经常去,呵呵

  18. 球犯 says:

    国庆快乐呀~好久没上网了~

    1. zwwooooo says:

      @球犯
      祝你玩的开心

  19. derek says:

    一天一个函数,哈哈 :mrgreen:

    1. zwwooooo says:

      @derek
      没那么夸张,只是碰到了写写

  20. dengmin says:

    这几天发表了很多wp的文章 ..都是经验的终结

    1. zwwooooo says:

      @dengmin
      刚好在折腾就写写记录一下

回复给 zwwooooo ¬
取消回复

昵称 *

网址

B em del U Link Code Quote