Widgets

Widgets are typically stored in the app/Widgets directory. Once you're ready to register a widget with WordPress you can do so in app/widgets.php.

When defining a widget it must extend the WP_Widget class. Here is an example of a basic widget class:

app/Widgets/MyWidget.php

<?php namespace MyPlugin\Widgets;

class MyWidget extends \WP_Widget {

    public function __construct() {

    }

    public function widget( $args, $instance ) {
        // outputs the content of the widget
    }

    public function form( $instance ) {
        // outputs the options form on admin
    }

    public function update( $new_instance, $old_instance ) {
        // processes widget options to be saved
    }

}

Now, we can register this widget like so:

app/widgets.php

$widget->add(__NAMESPACE__ . '\Widgets\MyWidget');