我是创建自定义wordpress小部件的新手,我正在尝试创建一个。我在wp-content> plugins> custom-widgets> my-custom-widget.php创建了我的小部件。
这是我的代码
if(!class_exists("MyCustomWidget")){
class MyCustomWidget extends WP_Widget{
public function __constructor(){
parent::WP_Widget(false,"My custom Widget");
}
public function form($instance){
?>
<p>
<label>Tilte:</label>
<input type="text"/>
</p>
<?php
}
}
function register_my_widget(){
register_widget("MyCustomWidget");
}
add_action("widgets_init", "register_my_widget");
}当我试图激活它时,我得到了wordpress的失败页面,特别是下面的内容。怎么啦?
Fatal error: Uncaught ArgumentCountError: Too few arguments to function WP_Widget::__construct(), 0
passed in F:\Downloads\Worpress\Wordpress Local\apache2\htdocs\store\wordpress\wp-includes\class-wp-
widget-factory.php on line 61 and at least 2 expected in F:\Downloads\Worpress\Wordpress
Local\apache2\htdocs\store\wordpress\wp-includes\class-wp-widget.php:162 Stack trace: #0
F:\Downloads\Worpress\Wordpress Local\apache2\htdocs\store\wordpress\wp-includes\class-wp-widget-
factory.php(61): WP_Widget->__construct() #1 F:\Downloads\Worpress\Wordpress
Local\apache2\htdocs\store\wordpress\wp-includes\widgets.php(115): WP_Widget_Factory->register() #2
F:\Downloads\Worpress\Wordpress Local\apache2\htdocs\store\wordpress\wp-content\plugins\custom-widget\wp-
custom-widget.php(34): register_widget() #3 F:\Downloads\Worpress\Wordpress
Local\apache2\htdocs\store\wordpress\wp-includes\class-wp-hook.php(287): register_my_widget() #4
F:\Downloads\Worpress\Wordpress Local\apache2\htdocs\store\wordpress\wp-includes\class-wp-hook.php(311):
WP in F:\Downloads\Worpress\Wordpress Local\apache2\htdocs\store\wordpress\wp-includes\class-wp-
widget.php on line 162发布于 2021-11-25 21:23:24
有关完整的正确小部件示例,请参阅this answer from wordpress.stackexchange.com。
这个问题中的代码有几个问题:
在rich的回答中详细描述了父调用应该是对function __construct()的调用,而不是对parent::__construct(..)的调用。例如:parent::__construct('', 'Widget name');
发布于 2021-02-26 19:33:22
在你的构造函数中,你需要传递2个参数...所以就像这样:
public function __constructor(){
parent::__construct('my_custom_widget',v__('My Custom Widget', 'my_text_domain'));
}此处为WordPress文档:https://developer.wordpress.org/reference/classes/wp_widget/__construct/
https://stackoverflow.com/questions/66382384
复制相似问题