我正在运行一个函数来插入适用于类别,页面和帖子的自定义body类,但是在首页(没有类别)上,仍然标记带有body类的页面最后一篇文章的类别值。
我在想某个类别值是否未正确重置?我怎么做?
感谢。
function dynamicbody() {
$category = get_the_category();
if ( $category[0]->category_nicename == cat1 ) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'cat1'; return $classes; }
} else if ( $category[0]->category_nicename == cat2 ) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'cat2'; return $classes; }
} else if ( is_home() ) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'home'; return $classes; }
}
}
add_action('wp_head', 'dynamicbody');
答案 0 :(得分:0)
尝试下面的代码,首先检查一个类别是否存在
function dynamicbody() {
$category = get_the_category();
if($category)
{
if ( $category[0]->category_nicename == cat1 ) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'cat1'; return $classes; }
} else if ( $category[0]->category_nicename == cat2 ) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'cat2'; return $classes; }
} else if ( is_home() ) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'home'; return $classes; }
}
}
}
add_action('wp_head', 'dynamicbody');
答案 1 :(得分:0)
与使用is_home
代码相比,您最好使用is_front_page
,因此请更改以下行
else if ( is_home() ) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'home'; return $classes; }
}
到这个
else if ( is_front_page() ) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'home'; return $classes; }
}
如果您在此之后仍遇到问题,我会将整个代码更改为此
function dynamicbody() {
$category = get_the_category();
if ( $category[0]->category_nicename == cat1 && !is_front_page()) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'cat1'; return $classes; }
} else if ( $category[0]->category_nicename == cat2 && !is_front_page()) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'cat2'; return $classes; }
} else if ( is_front_page()) {
add_filter('body_class','my_class_names');
function my_class_names($classes) { $classes[] = 'home'; return $classes; }
}
}
add_action('wp_head', 'dynamicbody');