1

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

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

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

希望所有这些都是有道理的。

提前致谢!

4

1 回答 1

0

我建议创建一个自定义挂钩并将其放置在适当的侧边栏模板中。有关详细信息,请参阅 do_action。在侧边栏模板中使用以下行:

<?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');
于 2015-04-26T02:34:19.250 回答