微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WordPress - WP_Widget:致命错误:未捕获的 ArgumentCountError:函数 WP_Widget::__construct() 的参数太少

如何解决WordPress - WP_Widget:致命错误:未捕获的 ArgumentCountError:函数 WP_Widget::__construct() 的参数太少

我是自定义 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/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。