You are not passing your description correctly. Really, you aren’t passing it at all.
public function __construct() {
parent::WP_Widget(false, $name="Kevins Textbox");
array('description' => __('A text widget created by Kevin Ullyott for practice in creating widgets') );
}
That ‘description’ line is creating an array but you aren’t doing anything with it. It is just floating alone in space. You need to pass that to WP_Widget
. Follow the example in the Codex:
/**
* Register widget with WordPress.
*/
public function __construct() {
parent::__construct(
'foo_widget', // Base ID
'Foo_Widget', // Name
array( 'description' => __( 'A Foo Widget', 'text_domain' ), ) // Args
);
}
See how ID, name, and the array all get passed to the parent constructor? Compare that to your code, where the array is outside the closing bracket of WP_Widget
.
Calling WP_Widget
is about the same as calling __construct
— the first passes everything to the second. WP_Widget
is a pre-PHP5 style constructor as noted in the source.
Also, no need to assign the name to a variable here, $name="Kevins Textbox"
. You can’t ‘name’ variables when you pass them like you can in Python.
So, what you need is this:
public function __construct() {
parent::WP_Widget(
// or parent::__construct(
false,
'Kevins Textbox',
array(
'description' => __('A text widget created by Kevin Ullyott for practice in creating widgets')
)
);
;
}
You need WP_Query
or get_posts
to get your posts.
$fiveposts = get_posts(array('numberposts' => 5);
var_dump($fiveposts); // should show you what you have to work with.
Hope that helps.