我之前使用过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(); ?>">
这个是可能的吗?提前感谢!
发布于 2018-05-29 20:11:48
是的,这是完全可能的。
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
https://stackoverflow.com/questions/50582899
复制相似问题