如何在wordpress中扩展自定义小部件?
我说的是制作一个widget,它扩展了WP_widget的子widget 以此为参考: 例如: My_WidgetBase扩展了WP_小部件 我的Widget扩展了我的WidgetBase 我想知道如何让我的_小部件与我的其他小部件一起显示(目前还没有)。我已经让我的WidgetBase工作了 这对我的框架很重要。我知道widget()、update()和form()必须被覆盖,但我在任何地方都找不到任何关于创建WP_widget孙子的内容 例如:如何在wordpress中扩展自定义小部件?,wordpress,widget,extend,grandchild,Wordpress,Widget,Extend,Grandchild,我说的是制作一个widget,它扩展了WP_widget的子widget 以此为参考: 例如: My_WidgetBase扩展了WP_小部件 我的Widget扩展了我的WidgetBase 我想知道如何让我的_小部件与我的其他小部件一起显示(目前还没有)。我已经让我的WidgetBase工作了 这对我的框架很重要。我知道widget()、update()和form()必须被覆盖,但我在任何地方都找不到任何关于创建WP_widget孙子的内容 例如: class My_WidgetBase ext
class My_WidgetBase extends WP_Widget {
public function __construct($id = 'my-widget-base', $desc = 'My WidgetBase', $opts = array()) {
$widget_ops = array();
parent::__construct( $id, $desc, $widget_ops );
}
public function widget( $args, $instance ) {
die('function WP_Widget::widget() must be over-ridden in a sub-class.');
}
public function update( $new_instance, $old_instance ) {
return $new_instance;
}
public function form( $instance ) {
echo '<p class="no-options-widget">' . __('There are no options for this widget.') . '</p>';
return 'noform';
}
}
function RegisterMyWidgets() {
register_widget('My_WidgetBase');
}
add_action( 'widgets_init', 'RegisterMyWidgets' );
class My\u WidgetBase扩展WP\u小部件{
公共函数构造($id='mywidgetbase',$desc='mywidgetbase',$opts=array()){
$widget_ops=array();
父项::_构造($id、$desc、$widget_ops);
}
公共函数小部件($args,$instance){
die('WP_Widget::Widget()函数必须在子类中被覆盖');
}
公共函数更新($new\u实例,$old\u实例){
返回$new_实例;
}
公共函数表($instance){
echo“”。“(此小部件没有选项)。
”;
返回“noform”;
}
}
函数RegisterMyWidgets(){
注册小部件(“My_WidgetBase”);
}
添加_操作('widgets_init','RegisterMyWidgets');
解决了进一步挖掘此线程的问题:
问题不在于类的实现,而在于如何在框架中包含父类。我不是在同一个php文件中同时处理子文件和孙子文件,而是使用两个不同目录的独立文件
解决这个问题需要在我孙子类的目录中正确使用require_once()。您是否正在注册
Bar
?您应该使用函数register\u bar\u widget(){register\u widget('bar');}add\u action('widgets\u init','register\u bar\u widget')代码>是的,我正在使用add_操作('widgets_init',function(){register_widget('My_widget');});在我的每节课中。我相信你正在更改其中的“my_Widget”字符串,对吗?:你能给你的问题加上一些代码吗?可能只是打字错误之类的。是的,我正在为每个孩子、孙子等更改“我的小部件”。我不在存储这些文件的计算机旁,但我有一个工作的孩子小部件,我只是想知道如何制作孙子。如果它应该像再次创造一个孩子一样简单,那么是的,也许我有一个拼写错误:)。