Merhaba değerli okurlarım!
Bu yazımda sizlere wordpress bloglarınız için kendinize özel nasıl widget'ler yani bileşenler oluşturacağınızı detaylı bir şekilde anlatacağım.
Wordpress widget oluşturmadan önce mutlaka wordpress'in widget yapısını iyice anlamak gerekmektedir.
Bu yazımız Widget oluşturma konusunda sizlere rehber olacak nitelikte hazırlanmış ve en ince detaylara yer verilmiştir.
Sizlerde özel widget'ler oluşturmak istiyorsanız ve ya bu konu hakkında bir makale arıyorsanız doğru yere geldiğinizi söylemekteyim.
Kendinize özel widget'ler oluşturmak için sadece ve sadece temel php bilgisine sahip olmanız yeterli olacaktır.
Widget nedir, ne işe yarar bu konuya değinerek başlayalım.
Wordpress widget yapısını şöyle kısaca anlatmak doğru olacaktır. bloğunuza bir takım öğeleri kolaylıkla eklemenize olanak sağlayan yapılardır.
Wordpress'i ilk kurduğunuzda bir takım widget'ler ile birlikte gelmektedir. bu widget'lere şu örnekleri verebiliriz:
Wordpress arama sistemi, son yazılar bileşeni, son yorumlar bileşeni, arşivler...
Bu varsayılan widget'ler sizlere temelde birçok işlevleri kolayca yapmanıza olanak sağlar. tüm temalar ile uyumlu haldedirler, ancak bazı durumlarda bazı işlevleri yapabilmek için eklentilerden destek almak gerekir.
Bazı durumlarda istediğiniz eklentiyi bulamayabilir, ve dilediğiniz şekilde özgürce widget oluşturamayabilirsiniz. Böyle durumlarda wordpress'in eşsiz özel widget oluşturma özelliği devreye girmektedir.
Özel widget oluşturma size özgürce oluşturduğunuz widget'i yönetme imkanı sunar.
Wordpress bloğunuz da özel widget oluşturmak için bir takım kararlar vermeniz gerekmektedir. şimdi de hangi konuda karar vermeniz gerektiğine bakalım.
Özel widget oluşturmak için nasıl bir yol izleyeceğiniz çok önemlidir. bir eklenti yardımı ile çalışabilir ve ya temanıza dail ederek oluşturabilirsiniz.
Eğer eklenti ile çalışmak isterseniz; oluşturduğunuz özel widget'inizi her sitede ve ya temanızı değiştirseniz bile sürekli çalıştırabilirsiniz.
Temanızın functions.php dosyasına dail ederek çalıştırırsanız; sadece uyguladığınız temanızda çalışır ve temanızı güncellediğinizde ve ya temanızı değiştirdiğinizde functions.php dosyanıza yeniden eklemeniz gerekecektir.
Wordpress widget oluştururken wp-widget classlarını kullanmanız gerekmektedir.
Özel widget oluşturmak için minimum olarak dört class kullanmanız gerekmektedir. kullanmanız gereken dört class şunlardır:
__construct(): yapıcı fonksiyon.
widget() : Widget'in çıktısını içerir.
form() : WordPress yönetim panelinde widget ayarlarını içerir.
update() : widget ayarlarını günceller.
Widget oluşturmak için bir çok işlevi yerine getiren fonksiyon ve class vardır. bu classları incelemek için

bu sayfayıziyaret edebilirsiniz.
Artık özel widget oluşturma işlemine başlayacağız, ancak son bir adım kaldı. sitenizin yeteğini mutlaka almayı unutmayın.
Wordpress'inizi yedeklediyseniz artık basit bir widget oluşturma mantığını anlayacaksınız.
Bir metin editörü açın ve gerekli kodları yazmaya başlayın.
class hstngr_widget extends WP_Widget {
#buraya fonksiyonu yazın.
}
Şimdi, yukarıda bahsedilen 4 fonksiyonu tek tek uygulamaya başlıyoruz. Listedeki birincisi, bir kimliği widget’ın kullanıcı arayüzünde nasıl görüneceğini ve bir açıklama belirlemek için kullanacağımız yapıcı yöntemdir:
function __construct() {
parent::__construct(
#widget ID
'hstngr_widget',
#widget name
__('sadikozdogan.com.tr Örnek Widget', ' hstngr_widget_domain'),
#widget description
array( 'description' => __( 'sadikozdogan.com.tr Widget Tutorial', 'hstngr_widget_domain' ), )
);
Sonraki adımda widget’ın görümüne geçiyoruz. Bu işlem widget() fonksiyonu ile yapılmaktadır:
public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] );
echo $args['before_widget'];
#if title is present
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];
#output
echo __( 'merhabadunya from sadikozdogan.com.tr', 'hstngr_widget_domain' );
echo $args['after_widget'];
}
Burada widget’ımızın çıktısını “merhaba dunya!” metnini ve kullanıcının belirlediği başlığı gösterecek şekilde ayarladık.
Şimdi form() metodunu kullanarak widget’ın arka kısmını programlamalıyız.
public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) )
$title = $instance[ 'title' ];
else
$title = __( 'Varsayılan Başlık', 'hstngr_widget_domain' );
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
<?php
}
Burada, özel widget’ın nasıl kurulduğunu görebilirsiniz. Kullanıcı bir başlık tanımlamışsa o başlık bizim oluşturduğumuz HTML formuna eklenir. Aksi takdirde, başlığın adını Varsayılan Başlık olarak ayarlarız. Widget’ın WordPress yönetici alanında nasıl görüneceği budur.
Son olarak, ayarları değiştirdiğinde widget’i yenilemek için güncelleme işlevini uygulamamız gerekir.
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
return $instance;
}
Tüm bunlar; yeni oluşturulan örneğin geçerli başlığını alır, herhangi bir HTML / PHP etiketini kaldırır, başlığı gönderip ve geri getirir.
Burada yapılması gereken bir şey daha var: Widget’ı WordPress’e kaydetmek için ek bir işlev kullanmanız gerekir:
function hstngr_register_widget() {
register_widget( 'hstngr_widget' );
}
add_action( 'widgets_init', 'hstngr_register_widget' );
Yukarıdaki satırların hstngr_widget fonksiyonunun dışında olması gerektiğini unutmayın.
__construct() fonksiyonunda belirtilen widget ID’yi kullanan Hstngr_register_widget() isimli yeni bir fonksiyon tanımladık. Ardından, bu widget’ı yerleşik add_action() yöntemiyle WordPress’e yükleyen widgets_init‘i kullanarak bu fonksiyona bağladık. Son aşamada özel WordPress widget kodunuz şöyle görünmelidir:
function hstngr_register_widget() {
register_widget( 'hstngr_widget' );
}
add_action( 'widgets_init', 'hstngr_register_widget' );
class hstngr_widget extends WP_Widget {
function __construct() {
parent::__construct(
// widget ID
'hstngr_widget',
// widget name
__('sadikozdogan.com.tr Örnek Widget', ' hstngr_widget_domain'),
// widget description
array( 'description' => __( 'sadikozdogan.com.tr Widget Tutorial', 'hstngr_widget_domain' ), )
);
}
public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] );
echo $args['before_widget'];
//if title is present
if ( ! empty( $title ) )
echo $args['before_title'] . $title . $args['after_title'];
//output
echo __( 'merhaba, dunya from sadikozdogan.com.tr', 'hstngr_widget_domain' );
echo $args['after_widget'];
}
public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) )
$title = $instance[ 'title' ];
else
$title = __( 'Default Title', 'hstngr_widget_domain' );
?>
<p>
<label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" />
</p>
?php
}
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
return $instance;
}
}
Bu kodu temanızın functions.php dosyasına eklemek için Dosya Yöneticisi’ni, FTP istemcisini veya WordPress editörünü kullanabilirsiniz. Kodu aktif temanızın functions.php dosyasına ekleyin ve değişiklikleri kaydedin.
Şimdi WordPress yönetici alanınıza girin ve Görünüm > Widget’lar kısmına devam edin. Hostinger Örnek Widget adında bir widget görebiliyor olmalısınız.
Widget’ı sağ menüye sürükleyip bıraktığınızda widget’ın başlığını düzenleyebiliyor olmalısınız. Kaydedin ve sitenizi ziyaret edin. Widget’ınız seçtiğiniz başlıkla görüntüleniyor olmalıdır.
Tebrikler! İlk widget’ınızı başarıyla oluşturdunuz. Şimdi widget’ınızın nasıl göründüğünü ön izleyebilirsiniz.
Wordpress özel widget oluşturma konulu yazımın sonuna gelmiş bulunmaktayım. soru ve sorunlarınızı yorum olarak iletebilirsiniz. iyi bloglar.

Bir önceki yazımız olan wordpress eklentisiz sayfalama yapımı başlıklı makalemizde wordpress eklentisiz sayfalama yapımı, wordpress sayfalama yapımı ve wp-page navi eklentisi hakkında bilgiler verilmektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

code