解析WordPress中的post_class与get_post_class函数_php技巧
post_class 是 WordPress 内置的一个用于显示文章 class 名称的函数,该函数通常会为每一篇文章生成独一无二的 clss 值,如果你需要制作你自己的主题,而且还需要一点个性的话,那你最好驻足一下,使用该函数并配合灵活的 css 代码,我们可以制作出个性化十足的 WordPress 博客。
post_class 函数描述
该函数通常会为每一篇文章生成独一无二的 clss 值,可以很方便使用于文章所在的节点中。
函数使用
向其他的诸如 header_image、wp_title这样的 WordPress 标签函数一样,不带 get 的函数通常是会直接显示出来而不返回任何值。
>
是的,也许你已经注意到了,使用 post_class 函数时我们甚至不需要这样去写 clss=“post_class()”;。
实例结果
不卖关子,结果如下
文章内容
以使用为主的函数讲完了,
下面照旧给出函数源代码:
想要了解更多关于该函数,以及get_post_class函数请关注后期文章。
/** * Display the classes for the post div. * * @since 2.7.0 * * @param string|array $class One or more classes to add to the class list. * @param int $post_id An optional post ID. */ function post_class( $class = '', $post_id = null ) { // Separates classes with a single space, collates classes for post DIV echo 'class="' . join( ' ', get_post_class( $class, $post_id ) ) . '"'; }
get_post_class 详解
get_post_class 是 post_class 函数的基本实现,在 WordPress 中其他一些带 get 的函数一样,该函数将会有一个返回值,而该返回值将是一个包含当前文章基本信息的数组,get_post_class 函数主要用来给每篇文章生成独一无为的 class 值而被封装出来的。
如果你是一个要求不高的人的话,那么 post_class 这个函数其实已经足够你折腾了。如果你是一个有着精神洁癖的人,不想自己的 WordPress 网站有太多无用代码的话,那你可以继续往下看。
get_post_class函数详解
该函数主要用来生成一个当前文章相关信息的数组,该数组所含信息我们往往用来作为文章层中的 class 值。
就像我上面提到的 post_class 函数,就是利用了本函数生成的 class 值。
并且该函数支持插入你自己的 class 值,一合并到返回数组中。
以上是我本人的理解,当然你也可以看一下官方的手册。
比较费解的手册内容如下:
WordPress Themes have a template tag for the post HMTL tag which will help theme authors to style more effectively with CSS. The Template Tag is called get_post_class. This function returns different post container classes which can be added, typically, in the index.php, single.php, and other template files featuring post content, typically in the HTML
tag.
函数用法
如果在循环中,并且不需要插入自定义class值的话,该函数可不接受任何参数。
函数参数
$class:自定义 class 值,可以使字符串也可以死数组。
$post_id:文章ID
使用实例
$MyClass = get_post_class(); var_dump($MyClass);
输出结果:
array(9) { [0]=> string(8) "post-249" [1]=> string(4) "post" [2]=> string(9) "type-post" [3]=> string(14) "status-publish" [4]=> string(15) "format-standard" [5]=> string(6) "hentry" [6]=> string(18) "category-catcatcat" [7]=> string(8) "tag-tag1" [8]=> string(8) "tag-tag2" }
进阶实例
$MyClass = get_post_class('index-post',249); //或 $MyClass = get_post_class(array( 'index-post'),249); var_dump($MyClass);
输出结果:
array(10) { [0]=> string(8) "post-249" [1]=> string(4) "post" [2]=> string(9) "type-post" [3]=> string(14) "status-publish" [4]=> string(15) "format-standard" [5]=> string(6) "hentry" [6]=> string(18) "category-catcatcat" [7]=> string(8) "tag-tag1" [8]=> string(8) "tag-tag2" [9]=> string(10) "index-post" }
总结
根据函数的源代码,我们可以看出,本函数 class 值罗列的顺序为:
- 文章id
- 文章类型(页面、文章)
- 文章类型(页面、文章)与上一条相同,但结果中多了‘type-'字样
- 发布状态
- 文章格式
- 是否需要密码
- 文章所述分类(会逐个罗列所述分类)
- 文章所述标签(会逐个罗列标签)
推荐阅读
-
WordPress中调试缩略图的相关PHP函数使用解析
-
WordPress中编写自定义存储字段的相关PHP函数解析
-
PHP中mb_convert_encoding与iconv函数的深入解析
-
WordPress中获取页面链接和标题的相关PHP函数用法解析
-
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
-
解析WordPress中的post_class与get_post_class函数
-
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
-
解析php中var_dump,var_export,print_r三个函数的区别_php技巧
-
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别_PHP教程
-
解析thinkphp中的M()与D()方法的区别_php技巧