为什么POST_CLASS()函数将css类应用于所有其他文件?

时间:2020-11-15 作者:vishal

我使用post\\u class()函数添加一个自定义的CSS类,如width和display属性。但它适用于所有其他文件,如关于页面、联系页面。我尝试使用WordPress类,而不是使用HTML的class属性。我已经提到了wordpress。组织。我认为post\\u类可以用于WordPress预定义类,也可以用于添加自定义类。这是一种正确或错误的方法。如果有人知道,请建议在哪里使用post\\u类()?可以使用post\\u class()添加自定义类。

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

在何处使用post_class()

你几乎可以在任何地方使用它(在WordPress中),例如单篇文章页面(single.php, single-my_cpt.php, 等),搜索结果页(search.php), 索引模板(index.php), 模板部件(例如。content.php), 和一个短代码函数。

可以使用post_class() 用于添加自定义类?

是的,是的。post_class() 不限于WordPress默认类。

例如,post_class( \'my-class\' ) 除非有代码filters the classes 然后删除my-class 从列表中。

它适用于所有其他文件,如关于页面、联系人页面

限制它(您的自定义CSS类)仅应用于某些页面是您的任务,WordPress不会自动为您应用该限制。

但是WordPress提供了各种conditional tags 喜欢is_page() 只能在某些页面上添加CSS类,因此只需使用相关的条件标记post_class().

例如,要添加my-class 仅在页面上(发布page 类型)带缓动阀about:

<div <?php post_class( is_page( \'about\' ) ? \'my-class\' : \'\' ); ?>>
    your code
</div>

<!-- or maybe like so: -->
<?php
// foo-bar would always be in the list
$classes = [ \'foo-bar\' ];

if ( is_page( \'about\' ) ) {
    $classes[] = \'my-class\';
}
?>
<div <?php post_class( $classes ); ?>>
    your code
</div>
请注意post_class() 默认情况下,在当前WordPress查询中使用当前帖子,即全局$post 变量,因此如果要输出特定帖子的类,请将帖子ID(或对象)传递给post_class():

// 123 (2nd parameter for post_class()) is the post ID
<div <?php post_class( \'my-custom-class\', 123 ); ?>>
    your code
</div>