WordPress functions.php问题

WordPress functions.php问题,php,wordpress,function,blogs,Php,Wordpress,Function,Blogs,functions.php文件中的函数能否从functions.php调用另一个函数?我猜是的,这就是为什么我写了下面的代码,但由于某些原因它不起作用。谁能帮我查一下吗 我尝试从register_sidebar()调用pageBarColor() 谢谢 <?php if (function_exists('register_sidebar')) { register_sidebar(array( 'before_widget' => '<li class="sideb

functions.php文件中的函数能否从functions.php调用另一个函数?我猜是的,这就是为什么我写了下面的代码,但由于某些原因它不起作用。谁能帮我查一下吗

我尝试从register_sidebar()调用pageBarColor()

谢谢

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

function pageBarColor(){
    if(is_category('3')) {
        return "color1";
    } elseif(is_category('4')) {
        return "color2";
    } elseif(is_category('5')) {
        return "color3";
    } elseif(is_category('6')) {
        return "color4";
    } elseif(is_category('7')) {
        return "color5";
    }
}
?>

问题可能是,当您调用
register\u边栏时,Wordpress尚未执行确定
结果为\u category
的代码。如果您在定义了
pageBarColor
函数后直接调用它,您会发现它不会返回任何内容。解决此问题的一种方法是挂接到
动态侧边栏\u参数
过滤器(在模板中调用
动态侧边栏
时调用该过滤器,假设您这样做),并在标题
值之前更新小部件
,如下所示:

function set_widget_title_color($widgets) {
    foreach($widgets as $key => $widget) {
        if (isset($widget["before_title"])) {
            if(is_category('3')) {
                $color = "color1";
            } elseif(is_category('4')) {
                $color = "color2";
            } elseif(is_category('5')) {
                $color = "color3";
            } elseif(is_category('6')) {
                $color = "color4";
            } elseif(is_category('7')) {
                $color = "color5";
            }

            if (isset($color)) $widgets[$key]["before_title"] = str_replace("moduleTitle", "moduleTitle ".$color, $widget["before_title"]);
        }
    }
    return $widgets;
}
add_filter('dynamic_sidebar_params', 'set_widget_title_color');

请指定哪些不起作用。您是否收到任何错误消息?没有错误消息。只是不返回任何内容,页面加载时没有任何更改。实际上,这是一个空间,因为我已经给了它。嘿,谢谢你的答复,但我对行动一无所知,所以请你把我链接到一个必要的页面。谢谢你的回答。我尝试了这个,我在我的主题中调用了dynamic_侧边栏,但是没有任何改变。我的错!我没有在我的sidebar.php中调用dynamic_侧边栏,而是这样:
  • ,我的侧边栏的其余部分是手动创建的。有没有其他方法可以改变颜色。Wordpress codex的这一页解释了操作和过滤器(尽管
    动态侧栏\参数
    操作实际上没有记录):我在回答你的后续问题时添加了一个静态侧栏的示例: