【问题标题】:Wordpress homepage stamped with a custom category body class, - why?带有自定义类别正文类的 Wordpress 主页 - 为什么?
【发布时间】:2013-12-04 13:19:16
【问题描述】:

我正在运行一个函数来插入适用于类别、页面和帖子的自定义正文类,但在首页(没有类别)上它仍然标记带有正文类的页面上一篇文章的类别值。

我认为类别值没有被正确重置?我怎么做?

谢谢。

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');

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    与其使用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');
    

    【讨论】:

    • 是的,它有效!这是我在 StackOverflow 上的第一篇文章,-感谢您的帮助,我希望我能继续传递这个善行,并在某个时候帮助这些论坛上的其他人! :) 美好的一天,先生。
    • 非常欢迎您。很高兴我能帮上忙! Stack Overflow 用户也救过我几次。
    【解决方案2】:

    试试下面的代码,先检查一个类别是否存在

    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');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多