是否有人尝试过扩展calss WP\\u小部件,然后再次扩展它?
由于有相关的小部件,我尝试创建第一个扩展的WP\\U小部件:
class FirstWidget extends WP_Widget {
public function __construct(){
parent::__construct(
等
然后扩展第一个以创建第二个:
class SecondWidget extends FirstWidget {
public function __construct(){
parent::__construct(
这很好,只是第二个小部件在拖放小部件区域中不可用。我可以在代码中明确使用它:
the_widget(\'SecondWidget\', array(\'title\'=> "New title")
它显示得很好,但我不能拖放它。
有人知道为什么?
SO网友:s_ha_dum
您必须确保将所有参数都传递到WP_Widget
班你的代码被截断了,但我很确定这就是你做错的地方。
下面的小部件代码可以工作——它什么都不做,但可以工作。看看是否可以将其用作模板来整理自己的代码。
class Foo extends WP_Widget {
/*constructs etc*/
function __construct($id = \'twidg\', $descr = \'Test Widget\', $opts = array()) {
$widget_opts = array();
parent::__construct($id,$descr,$widget_opts);
/*do stuff*/
}
function widget() {
echo \'test widget\';
}
}
function rw_cb() {
register_widget("Foo");
}
add_action(\'widgets_init\', \'rw_cb\');
class Bar extends Foo {
function __construct() {
$widget_opts = array();
parent::__construct(\'twidgextended\',\'Test Widget 2\',$widget_opts);
}
function widget() {
echo \'test widget 2\';
}
}
function rw_cb_2() {
register_widget("Bar");
}
add_action(\'widgets_init\', \'rw_cb_2\');
代码
is mostly cribbed from another question. 我在这里发布之前做了一些小改动。