Tutorial temă wordpress (4) – custom widgets

În tutorialul de azi vom vorbi cum putem construi widget-uri customizate.

Pentru a construi un widget trebuie să creăm o nouă clasă ce moștenește clasa WP_Widget. Forma standard a clasei derivate este următoarea:

class My_Widget extends WP_Widget {

	public function __construct() {
		// constructorul pentru clasa noastră
	}

	public function widget( $args, $instance ) {
		// afișarea conținutului de către widget pe site-ul nostru
	}

 	public function form( $instance ) {
		// formularul ce apare în admin și pe care îl completăm cu diferite opțiuni și date ale widget-ului nostru
	}

	public function update( $new_instance, $old_instance ) {
		// prelucrarea opțiunilor widget-ului
	}

}

Widget-ul nou construit se poate înregistra în temă adăugând codul de mai jos:

add_action( 'widgets_init', function(){
     register_widget( 'My_Widget' );
});

Hai să facem un widget ce afișează „Hello, World!”

class Test_Widget extends WP_Widget {
        public function __construct() {
                parent::__construct(
                   'test_widget', // id widget
                   'Test_Widget' // Nume widget
                );
        }

        public function widget( $args, $instance ) {
                echo '<div class="widget">Hello, world!</div>";
        }

        public function form( $instance ) {
                 $default = array( 'title' => 'Test Widget');
                 $instance = wp_parse_args( (array)$instance, $default );
        }

        public function update( $new_instance, $old_instance ) {
                 return $new_instance;
        }

} // clasa Test_Widget

Pentru mai multe informații puteți să vă documentați de aici: http://codex.wordpress.org/Widgets_API

Anunțuri

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s