WordPress:将过滤器/钩子应用于特定的侧边栏小部件?

时间:2013-07-14 18:08:34

标签: wordpress wordpress-theming

我正在开发一个主题,它有超过5个不同的侧边栏,我想将一个函数应用于其中一个特定的主题以用于样式目的。基本上,该函数将使用计数器修改它的参数,以在每个小部件之间显示随机。我提出了这个问题:

function widget_params( $params ) { 
    // ...
}
add_filter( 'dynamic_sidebar_params', 'widget_params' );

但是,它会针对每个不同的侧边栏运行。有没有办法让它只在特定的侧边栏上工作?或者,有没有办法在该函数内部获取当前窗口小部件的侧边栏ID?

希望所有这一切都有意义。

提前致谢!

1 个答案:

答案 0 :(得分:0)

我建议您创建一个自定义挂钩并将其放在相应的侧边栏模板中。 See do_action for more information.使用侧栏模板中的以下行:

<?php do_action('custom_sidebar_action', 9999); //Replace X with the sidebar ID parameter you want to pass to the function. ?>

然后,在你的函数中,修改你的代码就像下面这样(只是从内存编码,所以可能需要一些事情):

function my_widget_function( $sidebar_id ) { 
    // ...
}
add_action('custom_sidebar_action', 'my_widget_function', 10, 1);

使用这种方法,我猜你可以在不传递侧边栏ID的情况下离开,所以更干净的功能看起来像这样:

<?php do_action('custom_sidebar_action'); ?>

然后:

function my_widget_function() { 
    // ...
}
add_action('custom_sidebar_action', 'my_widget_function');