在WordPress的,我的目标是能够给一个自定义类,我把在侧边栏每个小部件。 最好我想在每个插件的窗口小部件设置添加这个类。 ALSO第三方小工具。
我想改变类名的,因为类名已经被传递到register_sidebar功能(%2 $ S):
<?php
register_sidebar(array('before_widget' => '<aside id="%1$s" class="widget %2$s blue">'));
?>
Ofcourse我不应该改变WP的核心代码或第三方插件。 这意味着,我需要编写一个插件,将钩到小工具的配置过程。
我已经发现,它可能修改所有部件的形式,挂接到行动“in_widget_form”:
<?php
add_action('in_widget_form', 'teaserWidgetAddToForm');
function teaserWidgetAddToForm($widget_instance) {
?>
<label for="<?php echo $widget_instance->get_field_id('teaser-classname'); ?>">Custom classname(s):</label>
<input type="text" id="<?php echo $widget_instance->get_field_id('teaser-classname'); ?>" name="<?php echo $widget_instance->get_field_name('teaser-classname'); ?>">
<?php
}
?>
这个数据应该由Widget的超类被保存,但是你如何检索这些数据(所以打开窗口小部件设置在后显示您在前面填什么)
而且,这个保存的数据应该放在小部件实例 - 如何在这做什么? 我想用这样的:
<?php
$wp_registered_widgets[<widget_id>]['callback'][0]['widget_options']['classname'] = <chosen_class>;
?>
所以基本上我有2个问题:
- 我在用正确的方法解决这个问题(个别部件的造型)
- 如果是这样,我怎么能修改控件实例来保存和检索额外的设置,而无需修改Wordpress或第三方插件的源代码。