2 min read

Wordpress Yeni Widget Oluşturma

WordPress’de yeni bir widget (bileşen) oluşturmak için belirli bir sınıfa ihtiyacınız vardır. Bu sınıfta olması gereken bazı metotlar ve değerler mevcuttur. Bunlar sayesinde temanıza yada eklentiniz üzerinden WordPress’e yeni bir bileşen (widget) ekleyip kullanabilirsiniz. Aşağıdaki örnekte bir widget sınıfı bulunmaktadır.

Bu sınıf oluşturulan basit bit text widgetidir. Bu sınıfı temanızın yada plugininizin içine include etmeniz gerekmektedir.

<?php

class widgets extends WP_Widget
{	
	/**
	 * @method WP_Widget
	 * Widget Başlığı oluşturulur.
	 * oluşturulan değerler WP_Widget metotuna gönderilir. 
	 */
	public function __construct()
	{
		$widget_options = array('description' => 'Widget Açıklaması'); //Widget Açıklaması
		parent::WP_Widget(false,'Widget Adı',$widget_options);
	}

	/**
	 * @param array $new
	 * @param array $old
	 * gelen yeni form verileri update edilir.
	 * @return array
	 */
	public function update($new,$old)
	{
		return $new
	}

	/**
	 * Admin arayüzündeki widget formu oluşturulur.
	 * Oluşturulan forma belirli id ve name eklenir.
	 * @param array $instance
	 * @method get_field_id
	 * @method get_field_name
	 */
	public function form($instance)
	{
		if(!isset($instance['text']))
			$text  = "";
		else
			$text  = $instance['text'];

		echo '<p>';
		echo '<label for="'.$this->get_field_id('text').'">Text</label>';
		echo '<textarea id="'.$this->get_field_id('text') .'" class="widefat" name="'.$this->get_field_name('text').'">'.$text.'</textarea>';
		echo '</p>';
	}

	/**
	 * @param array $args
	 * @param array $instance
	 * Widget'ın arayüzde görünüm kısmı belirlenir.
	 */ 
	public function widget($args,$instance)
	{	
		//args ile gelen veriler ayrıştırılıyor
		extract($args);
		
		$text  = $instance['text'];

		echo $before_widget; //widget öncesi eklenen veriler.
		echo $before_title;  //widget title
		echo $text;			 //widget'a eklenen text
		echo $after_title;   //widget sonrası eklenen başlık.
		echo $after_widget;  //widget sonrası gelen yeni widget'lar.
	}

}
  •  __construct(): Bu alanda widget’ın adı ve açıklaması belirlenir.
  • update(): Bu metot ile gelen yeni değer return edilir ve veritabanına eklenir. İstenilirse bu metot ile gelen veriler üzerinde işlemler yapılabilir.
  • form(): Admin arayüzünde görülen widget (bileşen) oluşturulur. Bu alanda widget’dan alınması gereken veriler yada gösterilmesi istenen veriler bu metotta yer alır.
  • widget(): Arayüzde gösterilen widget verileri bu metot üzerinde yer alır.

Sınıfımızı oluşturduk gerekli widget ayarları tamam. Ancak bunun yanı sıra widget’ı wordpress’i tanıtmaya. temamızın yada pluginimizin içinde aşağıdaki tanımlamaları yapmalıyız.

<?php
//widgets sınıf ismi.
register_widget('widgets');

register_widget metotu ile widgetimizi wordpress’e tanıttık. Artık temamızın bileşenlerinde bu widgeti görebiliriz. Kullanabiliriz..