WordPress functions.php问题
functions.php文件中的函数能否从functions.php调用另一个函数?我猜是的,这就是为什么我写了下面的代码,但由于某些原因它不起作用。谁能帮我查一下吗 我尝试从register_sidebar()调用pageBarColor() 谢谢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
<?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的这一页解释了操作和过滤器(尽管动态侧栏\参数操作实际上没有记录):我在回答你的后续问题时添加了一个静态侧栏的示例: