first time with custom widget. I'm trying to create it this way:
<?php
namespace App;
class My_Widget extends \WP_Widget {
function My_Widget() {
$widget_ops = [
'name' => 'My widget',
'description' => 'My description'
];
parent::__construct( 'My_Widget', 'My widget', $widget_ops );
}
}
function load_widget() {
register_widget( 'App\\my_widget' );
}
add_action( 'widgets_init', __NAMESPACE__ . '\\load_widget' );
And I get this error:
Too few arguments to function WP_Widget::__construct(), 0 passed in /srv/www/contraindicaciones/current/web/wp/wp-includes/class-wp-widget-factory.php on line 61 and at least 2 expected
What am I doing wrong? Thanks!
first time with custom widget. I'm trying to create it this way:
<?php
namespace App;
class My_Widget extends \WP_Widget {
function My_Widget() {
$widget_ops = [
'name' => 'My widget',
'description' => 'My description'
];
parent::__construct( 'My_Widget', 'My widget', $widget_ops );
}
}
function load_widget() {
register_widget( 'App\\my_widget' );
}
add_action( 'widgets_init', __NAMESPACE__ . '\\load_widget' );
And I get this error:
Too few arguments to function WP_Widget::__construct(), 0 passed in /srv/www/contraindicaciones/current/web/wp/wp-includes/class-wp-widget-factory.php on line 61 and at least 2 expected
What am I doing wrong? Thanks!
Share Improve this question asked Feb 21, 2021 at 14:05 aitoraitor 7252 gold badges8 silver badges23 bronze badges1 Answer
Reset to default 12You're using an extremely outdated method of creating a widget. You should be using the __construct()
function, not a named function, as the constructor, as documented.
namespace App;
class My_Widget extends \WP_Widget {
function __construct() {
$widget_ops = [
'name' => 'My widget',
'description' => 'My description'
];
parent::__construct( 'My_Widget', 'My widget', $widget_ops );
}
}
function load_widget() {
register_widget( 'App\\my_widget' );
}
add_action( 'widgets_init', __NAMESPACE__ . '\\load_widget' );