【问题标题】:Change widget's CSS class names for different category pages in WordPress为 WordPress 中的不同类别页面更改小部件的 CSS 类名称
【发布时间】:2010-02-01 22:56:44
【问题描述】:

我想在 WordPress 的每个不同类别页面上更改侧边栏小部件的类名,我认为最好的方法是在 functions.php 中创建一个具有所有条件的函数并返回所需的类名.然后我在 register_sidebar 函数的列表标签中调用了该函数。

if (function_exists('register_sidebar')) {
  register_sidebar(array(
   'before_widget' => '<li class="sidebarModule">',
   'after_widget' => '</li><!-- end module -->',
   'before_title' => '<h2 class="moduleTitle "'.set_widget_title_color().'>',
   'after_title' => '</h2>',
  ));
}


function set_widget_title_color() {

    if(is_category('technology')) {
        $color = "catNavColor1_active";
    } elseif(is_category('gadgets')) {
        $color = "catNavColor2_active";
    } elseif(is_category('social-media')) {
        $color = "catNavColor3_active";
    } elseif(is_category('gaming')) {
        $color = "catNavColor4_active";
    } elseif(is_category('other')) {
        $color = "catNavColor5_active";
    }

    return $color;
}

由于某种原因,上述方法不起作用。请帮忙

谢谢

【问题讨论】:

    标签: php wordpress wordpress-theming


    【解决方案1】:

    我认为register_sidebars 在这个过程中被调用得太早了,当时还没有定义类别。您是否尝试过实现dynamic_sidebar_params 过滤器?我在 WordPress Codex 中找不到任何东西,但我找到了这个 nice example。您对此主题的其他问题也有a complete answer

    这仅在您在小部件中使用 dynamic_sidebar 实现侧边栏时有效,因为此函数调用 dynamic_sidebar_params 过滤器。如果您有静态小部件(在您的模板中定义,而不是使用小部件管理页面),您应该在该模板代码中添加对您的函数的调用,如下所示:

    <li class="sidebarModule">
    <h2 class="moduleTitle <?php echo set_widget_title_color(); ?>">Widget title</h2>
    <?php /* Your widget code */ ?>
    </li><!-- end module -->
    

    【讨论】:

      猜你喜欢
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 2013-06-04
      • 2018-05-12
      • 1970-01-01
      • 2017-01-04
      相关资源
      最近更新 更多