【问题标题】:WordPress: Apply filter/hook to a particular sidebar widgets?WordPress:将过滤器/挂钩应用于特定的侧边栏小部件?
【发布时间】:2013-07-12 14:32:01
【问题描述】:
我正在开发一个具有 5 个以上不同侧边栏的主题,并且我想将一个函数应用于其中一个特定的侧边栏以进行样式设置。基本上,该函数将使用计数器修改它的参数以显示每个小部件之间的随机值。我想出了这个:
function widget_params( $params ) {
// ...
}
add_filter( 'dynamic_sidebar_params', 'widget_params' );
但是,它会针对每个不同的侧边栏运行。有没有办法让它只在特定的侧边栏上工作?或者,有没有办法在该函数中获取当前小部件的侧边栏 ID?
希望所有这些都有意义。
提前致谢!
【问题讨论】:
标签:
wordpress
wordpress-theming
【解决方案1】:
我建议创建一个自定义挂钩并将其放置在适当的侧边栏模板中。 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');