问题描述
我是自定义 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
解决方法
在你的构造函数中,你需要传递 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/