【问题标题】: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');

【讨论】:

    猜你喜欢
    • 2010-11-26
    • 2012-12-03
    • 1970-01-01
    • 2013-01-16
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 2020-04-22
    • 2016-08-20
    相关资源
    最近更新 更多