我之前使用add_filter()
函数将一个类添加到正文中,如下所示:
add_filter( 'body_class', 'add_custom_class' );
function add_custom_class( $classes ) {
if ( is_single() ) {
$classes[] = 'post';
}
return $classes;
}
我希望能够沿着这些行使用某些东西来为div添加一个类:
add_filter( 'div_class', 'add_custom_class' );
function add_custom_class( $classes ) {
if ( is_single() ) {
$classes[] = 'post';
}
return $classes;
}
或更好:
add_filter( 'div_class', 'add_custom_class' );
function add_custom_class( $classes ) {
if ( is_single() ) {
$classes[] = 'post';
}
else if ( is_singular( 'custom-post-type' ) ) {
$classes[] = 'custom-post-type-class';
}
return $classes;
}
然后像我这样在我的主题中拉上课程:
<div class="wrapper <?php echo div_class(); ?>">
这可能吗?提前谢谢!
答案 0 :(得分:1)
是的,这完全有可能。
function so50582899_div_class($classes) {
global $post;
if(is_single()) {
$classes[] = 'single-post';
} elseif(is_page()) {
$classes[] = 'page'
}
return $classes;
}
add_filter('post_class', 'so50582899_div_class');
然后您可以将其称为<div class="<?php post_class(); ?>">
编辑:要删除所有现有类,请将$classes = array();
添加到该函数的顶部。这将重置返回的类,并仅返回您在函数中设置的类。
所以它最终会像:
function so50582899_div_class($classes) {
global $post;
$classes = array();
if(is_single()) {
$classes[] = 'single-post';
} elseif(is_page()) {
$classes[] = 'page'
}
return $classes;
}
add_filter('post_class', 'so50582899_div_class');
参考:https://codex.wordpress.org/Function_Reference/post_class#Add_Classes_By_Filters