我正在运行一个函数来插入自定义正文类,该类适用于类别、页面和帖子,但在首页(没有类别)上,它仍然用上一篇帖子的类别值的正文类标记页面。
我在想,不知何故,类别值没有被正确重置?我该怎么做?
谢谢。
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');
与其使用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');
尝试下面的代码,只需首先检查类别是否存在
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');