如何在 wordpress 中扩展自定义小部件?
How to extend a custom widget in wordpress?
我说的是制作一个扩展 WP_Widget 的子小部件的小部件。
以此为参考:https://wordpress.stackexchange.com/questions/101438/how-to-extend-a-wp-widget-twice
示例:
My_WidgetBase 扩展 WP_Widget
My_Widget 扩展 My_WidgetBase
我想知道如何让 My_Widget 与我的其他小部件一起显示(目前没有)。我已经 My_WidgetBase 开始工作了。
这对我的框架很重要。我知道 widget()、update() 和 form() 必须被覆盖,但我找不到任何关于在任何地方创建 WP_Widget 的孙子的信息。
示例:
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' );
解决进一步挖掘这个线程:https://wordpress.stackexchange.com/questions/101438/how-to-extend-a-wp-widget-twice
问题不在于我对 classes 的实现,而在于我如何将 parent 包含在我的框架中。我没有在同一个 php 文件中同时使用 child 和 grandchild,而是使用不同目录的两个单独文件。
解决这个问题是在我祖父child class.
的目录中正确使用 require_once() 的问题
我说的是制作一个扩展 WP_Widget 的子小部件的小部件。
以此为参考:https://wordpress.stackexchange.com/questions/101438/how-to-extend-a-wp-widget-twice
示例:
My_WidgetBase 扩展 WP_Widget
My_Widget 扩展 My_WidgetBase
我想知道如何让 My_Widget 与我的其他小部件一起显示(目前没有)。我已经 My_WidgetBase 开始工作了。
这对我的框架很重要。我知道 widget()、update() 和 form() 必须被覆盖,但我找不到任何关于在任何地方创建 WP_Widget 的孙子的信息。
示例:
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' );
解决进一步挖掘这个线程:https://wordpress.stackexchange.com/questions/101438/how-to-extend-a-wp-widget-twice
问题不在于我对 classes 的实现,而在于我如何将 parent 包含在我的框架中。我没有在同一个 php 文件中同时使用 child 和 grandchild,而是使用不同目录的两个单独文件。
解决这个问题是在我祖父child class.
的目录中正确使用 require_once() 的问题