如何在单个插件中定义多个窗口小部件类

时间:2016-01-09 03:05:41

标签: wordpress wordpress-plugin

我正在尝试将两个小部件添加到我正在开发的Wordpress插件中。调用多个类的正确方法是什么?

我有一个包含my-plugin.php的插件文件夹:

class WidgetA extends WP_Widget {
  function widget_a() {
    ...
  }
  function form($instance) {
    ...
  }
  function update($new_instance, $old_instance) {
    ...
  }
  function widget($args, $instance) {
    ...
  } 
}
add_action('widgets_init', create_function('', 'return register_widget("WidgetA");'));

class WidgetB extends WP_Widget {
  function widget_b() {
    ...
  }
  function form($instance) {
    ...
  }
  function update($new_instance, $old_instance) {
    ...
  }
  function widget($args, $instance) {
    ...
  } 
}
add_action('widgets_init', create_function('', 'return register_widget("WidgetB");'));

如果删除WidgetA,则WidgetB正常运行,反之亦然。但如果我包括这两个类,则不会显示任何内容

在插件中定义两个小部件/类的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用以下代码将多个窗口小部件类声明为单个插件:

add_action( 'widgets_init', 'src_load_widgets' );

function src_load_widgets() {
    register_widget( 'WidgetA' );
    register_widget( 'WidgetB' );
}

class WidgetA extends WP_Widget {
    // ...
}

class WidgetB extends WP_Widget {
    // ...
}

来源:https://wordpress.stackexchange.com/questions/47492/wordpress-multiple-widget-in-single-plugin