En çok ihtiyaç duyduğunuzda güvenilir WordPress eğitimleri.
WordPress Başlangıç Rehberi
WPB Kupası
25 Milyon+
Eklentilerimizi kullanan web siteleri
16+
Yıllık WordPress deneyimi
3000+
Uzmanlardan WordPress eğitimleri

Özel Bir WordPress Widget'ı Nasıl Oluşturulur (Adım Adım)

Widget'lar, kenar çubuğuna veya WordPress sitenizdeki herhangi bir widget'a hazır alana içerik dışı öğeler eklemenize olanak tanır. Banner, reklam, bülten kayıt formları ve diğer öğeleri web sitenize eklemek için bunları kullanabilirsiniz.

Sosyal medya akışları, son gönderiler veya HTML etiketleri gibi benzersiz işlevleri kişiselleştirilmiş bir dokunuşla yerleştirmek için özel bir widget da oluşturabilirsiniz.

WPBeginner'da, web sitemizin kenar çubuğunda farklı içerik türlerini görüntülemek için özel widget'lar kullanıyoruz. Ve bu makalede, adım adım özel bir WordPress widget'ı oluşturmayı göstereceğiz.

Özel bir WordPress widget'ı nasıl oluşturulur (adım adım)

Not: Bu öğretici, WordPress geliştirme ve kodlama öğrenen DIY WordPress kullanıcıları içindir.

WordPress Widget Nedir?

WordPress widget'ları, web sitenizin kenar çubuklarına veya widget'a hazır alanlarına ekleyebileceğiniz kod parçacıkları içerir.

Onları sitenize farklı öğeler ve özellikler eklemek için kullanabileceğiniz modüller olarak düşünün.

Varsayılan olarak WordPress, herhangi bir WordPress temasıyla kullanabileceğiniz standart bir widget kümesiyle birlikte gelir. Daha fazla ayrıntı için, WordPress'te widget ekleme ve kullanma hakkındaki başlangıç rehberimize bakın.

WordPress widget'ları bölümü

WordPress ayrıca geliştiricilerin kendi özel widget'larını oluşturmalarına olanak tanır.

Birçok premium WordPress teması ve eklentisi, kenar çubuklarınıza ekleyebileceğiniz kendi özel widget'larıyla birlikte gelir.

Örneğin, herhangi bir kod yazmadan bir kenar çubuğuna bir iletişim formu, özel bir giriş formu, bir fotoğraf galerisi, bir e-posta listesi kayıt formu ve daha fazlasını ekleyebilirsiniz.

Bunu söyledikten sonra, WordPress'te kendi özel widget'larınızı nasıl kolayca oluşturabileceğinizi görelim.

WordPress'te Özel Bir Widget Oluşturmadan Önce

WordPress kodlaması öğreniyorsanız, yerel bir geliştirme ortamına ihtiyacınız olacaktır. Bu size sitenizin yayında olma endişesi olmadan öğrenme ve test etme özgürlüğü verir.

WordPress'i yerel olarak kurabilirsiniz, Mac'te MAMP kullanarak veya Windows'ta WAMP kullanarak.

Zaten canlı bir siteniz varsa, bunu yerel bir sunucuya taşıyabilirsiniz. Daha fazla ayrıntı için, canlı bir WordPress sitesini yerel bir sunucuya nasıl taşıyacağınıza ilişkin kılavuzumuza bakın.

Bundan sonra, özel widget kodunuzu WordPress'e eklemenin birkaç yolu vardır.

İdeal olarak, siteye özel bir eklenti oluşturabilir ve widget kodunuzu oraya yapıştırabilirsiniz. Bu, WordPress temanıza bağlı olmayan kodu WordPress'e eklemenizi sağlar.

Kodu temanızın functions.php dosyasına da yapıştırabilirsiniz. Ancak, bu yalnızca o belirli tema aktif olduğunda kullanılabilir.

Kullanabileceğiniz bir diğer araç, özel kodu web sitenize kolayca eklemenizi sağlayan WPCode eklentisidir.

Bu eğitimde, yalnızca ziyaretçileri selamlayan basit bir widget oluşturacağız. Buradaki amaç, WordPress widget sınıfına aşina olmaktır.

Hazır mısınız? Başlayalım.

Temel Bir WordPress Widget'ı Oluşturma

WordPress, yerleşik bir WordPress Widget sınıfıyla birlikte gelir. Her yeni WordPress widget'ı WordPress widget sınıfını genişletir.

WordPress geliştirici el kitabında WP Widget sınıfı ile kullanılabilecek 19 yöntemden bahsedilmektedir.

Ancak, bu eğitim kapsamında aşağıdaki yöntemlere odaklanacağız.

  • __construct() : Widget kimliğini, başlığını ve açıklamasını oluşturduğumuz kısım burasıdır.
  • widget: Bu, widget tarafından oluşturulan çıktıyı tanımladığımız yerdir.
  • form : Kodun bu kısmı, arka uç için widget seçenekleriyle formu oluşturduğumuz yerdir.
  • güncelleme: Burası widget seçeneklerini veritabanına kaydettiğimiz kısımdır.

Özel bir widget oluşturmak için aşağıdaki kod parçasını functions.php dosyanıza veya WPCode'a (önerilir) kopyalayıp yapıştırabilirsiniz:

<?php

// Creating the widget
class wpb_widget extends WP_Widget {
	function __construct() {
		parent::__construct(
		// Base ID of your widget
			'wpb_widget',

			// Widget name will appear in UI
			__( 'WPBeginner Widget', 'textdomain' ),

			// Widget description
			[
				'description' => __( 'Sample widget based on WPBeginner Tutorial', 'textdomain' ),
			]
		);
	}

	// Creating widget front-end
	public function widget( $args, $instance ) {
		$title = apply_filters( 'widget_title', $instance['title'] );

		// before and after widget arguments are defined by themes
		echo $args['before_widget'];
		if ( ! empty( $title ) ) {
			echo $args['before_title'] . $title . $args['after_title'];
		}

		// This is where you run the code and display the output
		echo __( 'Hello, World!', 'textdomain' );
		echo $args['after_widget'];
	}

	// Widget Settings Form
	public function form( $instance ) {
		if ( isset( $instance['title'] ) ) {
			$title = $instance['title'];
		} else {
			$title = __( 'New title', 'textdomain' );
		}

		// Widget admin form
		?>
        <p>
            <label for="<?php echo $this->get_field_id( 'title' ); ?>">
				<?php _e( 'Title:', 'textdomain' ); ?>
            </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
	}

	// Updating widget replacing old instances with new
	public function update( $new_instance, $old_instance ) {
		$instance          = array();
		$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';

		return $instance;
	}

	// Class wpb_widget ends here
}

// Register and load the widget
function wpb_load_widget() {
	register_widget( 'wpb_widget' );
}

add_action( 'widgets_init', 'wpb_load_widget' );

Özel kodu WordPress sitenize eklemenin en kolay yolu WPCode kullanmaktır. Sitenize kod parçacıkları eklemenize ve yönetmenize yardımcı olan, herhangi bir şeyi bozma riskini almadan en iyi kod parçacığı eklentisidir.

Öncelikle sitenize WPCode eklentisini yükleyip etkinleştirmeniz gerekir. Yardıma ihtiyacınız olursa, WordPress eklentisinin nasıl kurulacağına dair rehberimize bakın.

Etkinleştirdikten sonra, WordPress yönetici panelinden Kod Parçacıkları » + Parçacık Ekle bölümüne gidebilirsiniz. Buradan, ‘Özel Kodunuzu Ekleyin (Yeni Parçacık)’ seçeneğini belirleyin.

Yeni kod parçacığı ekle

Bundan sonra, özel widget kodunu Kod Önizleme alanına yapıştırabilirsiniz.

Ayrıca ‘Kod Türü’ açılır menüsüne tıklamanız ve ‘PHP Parçacığı’ seçeneğini belirlemeniz gerekecek.

Özel widget kodu girin

Ardından, aşağı kaydırabilir ve kodunuz için Ekleme yöntemini seçebilirsiniz.

WPCode, kodu nereye çalıştıracağınızı seçmenize olanak tanır. Bu eğitim için varsayılan seçenekleri kullanabilir ve her yerde çalıştırabilirsiniz.

WPCode'da ekleme yöntemi

Bu işlem bittikten sonra, kod parçasını kaydetmek için yukarı kaydırabilirsiniz.

Kod parçasını etkinleştirmek için geçiş düğmesini 'Aktif' konumuna getirin.

WPCode'da kod parçasını etkinleştirin ve kaydedin

Daha fazla bilgi edinmek için lütfen WordPress sitenize özel kod ekleme kılavuzumuza bakın.

Kodu WordPress'e ekledikten sonra, WordPress yönetici panelinizdeki Görünüm » Widget'lar sayfasına gitmeniz gerekir.

Ardından, ‘Artı’ ekleme bloğu simgesine tıklayın, ‘WPBeginner Widget’ı arayın ve yeni widget'ı seçin.

WPBeginner widget'ı ekle

Bu widget'ın doldurulacak yalnızca bir form alanı vardır.

Metninizi ekleyebilir ve değişikliklerinizi kaydetmek için 'Güncelle' düğmesine tıklayabilirsiniz.

Widget'a metin ekleyin ve kaydedin

Özel widget'ı çalışırken görmek için şimdi WordPress web sitenizi ziyaret edebilirsiniz.

Demo sitemizde nasıl göründüğüne dair bir örnek aşağıdadır.

Yeni özel widget örneği

WordPress Klasik Düzenleyiciye Özel Widget Ekleme

Sitenize yeni widget'lar eklemek için klasik widget düzenleyicisini kullanıyorsanız, işlem benzer olacaktır.

Mevcut widget'lar listesinde ‘WPBeginner Widget’ adında yeni bir widget olacak. Bu widget'ı kenar çubuğunuza sürükleyip bırakmanız gerekir.

Ardından, bir başlık girin ve widget ayarlarınızı kaydetmek için 'Kaydet'e tıklayın. 

WordPress klasik düzenleyiciye widget ekle

Yeni özel widget'ınız artık web sitenizde yayında olacak.

Şimdi kodu tekrar inceleyelim.

İlk olarak, 'wpb_widget'i kaydettik ve özel widget'ımızı yükledik. Bundan sonra, bu widget'ın ne yaptığını ve widget'ın arka ucunun nasıl görüntüleneceğini tanımladık.

Son olarak, widget'ta yapılan değişikliklerin nasıl ele alınacağını belirledik.

Şimdi, sormak isteyebileceğiniz birkaç şey var. Örneğin, textdomain'in amacı nedir?

WordPress, çeviri ve yerelleştirmeyi yönetmek için ‘gettext’ kullanır. Bu textdomain ve _e , ‘gettext’e bir dizeyi çeviri için kullanılabilir hale getirmesini söyler. Daha fazla bilgi edinmek için, çeviriye hazır WordPress temalarını nasıl bulabileceğinizle ilgili kılavuzumuza bakın.

Tema için özel bir widget oluşturuyorsanız, textdomain'i temanızın metin alanıyla değiştirebilirsiniz.

Alternatif olarak, WordPress'i kolayca çevirmek ve çok dilli bir WordPress sitesi oluşturmak için bir WordPress çeviri eklentisi kullanabilirsiniz.

Bonus: WordPress Widget'larınıza Özel Stiller Ekleyin

Bir WordPress widget'ı oluşturduktan sonra, ona özel stiller de ekleyebilirsiniz. Bu, web sitenizin görünümünü iyileştirebilir, tutarlılığı koruyabilir ve önemli bilgilere dikkat çekebilir.

Bunu yapmak için Görünüm » Widget'lar sayfasına gidin ve özelleştirmek istediğiniz widget'ı ekleyin. Artık sağdaki blok panelinde renklerini ve tipografisini değiştirmek için bazı seçenekler göreceksiniz.

Varsayılan WordPress widget stil seçenekleri

Ancak, widget bu seçeneği göstermiyorsa, 'Gelişmiş' sekmesini genişlettikten sonra CSS sınıfları ekleyerek özelleştirebilirsiniz.

Artık bu belirli CSS sınıfını hedefleyen özel CSS'yi WordPress temanıza ekleyebilirsiniz.

Blok Düzenleyici'de widget'lara özel CSS sınıfı ekleme

Bunun için Görünüm » Özelleştir sayfasına gidin ve Ek CSS sekmesine geçin. Burada, web sitenizin önizlemesini CSS kurallarınızı ekleyebileceğiniz bir kutu ile göreceksiniz.

Widget'ınızın görünümünü özelleştirmek için artık özel CSS kullanabilirsiniz. Ayrıntılar için, WordPress widget'larınıza özel stiller ekleme hakkındaki eğitimimize bakın.

Add CSS rules

Bu makalenin özel bir WordPress widget'ı nasıl kolayca oluşturacağınızı öğrenmenize yardımcı olduğunu umuyoruz. Ayrıca, WordPress'te widget bloklarını nasıl devre dışı bırakacağınıza dair rehberimizi ve WordPress'te etkisiz widget'ları nasıl kaldıracağınıza dair eğitimimizi de görmek isteyebilirsiniz.

Bu makaleyi beğendiyseniz, lütfen WordPress video eğitimleri için YouTube Kanalımıza abone olun. Bizi ayrıca Twitter ve Facebook'ta da bulabilirsiniz.

Açıklama: İçeriğimiz okuyucu desteklidir. Bu, bazı bağlantılarımıza tıklamanız durumunda komisyon kazanabileceğimiz anlamına gelir. WPBeginner'ın nasıl finanse edildiğini, neden önemli olduğunu ve bize nasıl destek olabileceğinizi görün. İşte editöryal sürecimiz.

Nihai WordPress Araç Seti

Araç Kitimize ÜCRETSİZ erişim kazanın - her profesyonelin sahip olması gereken WordPress ile ilgili ürün ve kaynaklardan oluşan bir koleksiyon!

Okuyucu Etkileşimleri

30 CommentsLeave a Reply

  1. The ‘wpb_text_domain’ string is not found in the example code. I’m guessing the example code was updated and the article verbiage was not?

    Ayrıca teyit etmek gerekirse, 'wpb_text_domain' aslında örnek koddan 'web_widget_domain' mi?

    Herhangi bir geri bildirim için şimdiden teşekkürler.

    • Bunu belirttiğiniz için teşekkür ederiz, bu makaleyi güncelleyecek ve daha iyi açıklayacağız ve netleştireceğiz.

      Yönetici

  2. merhaba,
    kodu ayrı bir class.php dosyasına koyabilir miyim, yoksa functions.php'de mi olmalı?

  3. Harika eğitim için teşekkürler. Kodu test eklentime ekledim ve tarif edildiği gibi mükemmel çalışıyor – Widget'ı Görünüm » Widget'lar listesinde görüyorum ve Kenar Çubuğuna ekleyebiliyorum.
    Ancak sayfa düzenleyici listesinde yeni Widget'ı göremiyorum. Bir şeyi mi kaçırıyorum, başka bir kayıt veya ayar gerekiyor mu?
    Yardımınız için tekrar teşekkürler.

  4. Bu artık Wordpress'te “Eski Widget” olarak görüntüleniyor. Widget oluşturmanın yeni bir yolu var mı?

  5. bu harika, basit kes ve yapıştır örneği tam olarak aradığım şeydi. Teşekkürler!

  6. Bir CRUD Eklentisi oluşturdum ve bunu bir sayfada kullanmam gerekiyor, eklentiyi sayfada nasıl kullanacağım konusunda bana rehberlik edebilir misiniz?

    • Eklentiyi nasıl kurduğunuza bağlı olacaktır, tek bir sayfada olması için ön uç görüntüleme için bir kısa kod kullanmayı veya site tarafında yönetici tarafında görüntülemek isterseniz seçenekler API'sine bakmayı düşünebilirsiniz.

      Yönetici

  7. 1'den fazla özel widget'ı nasıl oluşturabilirim?
    Ve ayrıca, widget'ta radyo, onay kutusu, açılır menü, metin gibi diğer alanları nasıl ayarlayabilirim?

    • wpb_widget'ı yeni widget'ınızın adını istediğiniz şeyle değiştirmeniz gerekir ve ardından kod, özellikle ne eklemek istediğinize bağlı olacaktır. WordPress kod tabanına bakarsanız mevcut farklı kodları görebilirsiniz.

      Yönetici

  8. Merhaba!

    Şu anda bir eklenti geliştiriyorum ve kullanıcının sitesine özel bir işlevsellik eklemesine olanak tanıyan bir widget oluşturmam gerekiyor.
    Widget'ınızın kodunu bir dosyaya kopyaladım ve dosyayı eklentimin dizinine kaydettim. Yüklemek için eklentimin ana dosyasında add_action ve do_action kullandım ancak hala çalışmıyor. Bana yardımcı olabilir misiniz, lütfen?

    Teşekkürler!

    • Ne yazık ki, bu büyük ölçüde eklentinizin nasıl ayarlandığına bağlı olacaktır, widget'ın eklenmesi ve görüntülenmesi için bu kodun her iki bölümünün de yüklendiğinden emin olmak isteyebilirsiniz.

      Yönetici

  9. Kısa bir soru, başka widget'lar da yerleştirebileceğim widget'lar oluşturmak istersem ne olur? Boş bootstrap sütunları 6-3-3 gibi ve her sütuna resim, metin, en son gönderiler vb. gibi widget'lar yerleştirebilirim.

    Bu widget'ta başka widget'lar için yer olduğunu belirtmek için bir komut / anahtar kelime var mı?

    çünkü kendi oluşturduğum tema ve WP'nin nasıl çalıştığı konusunda biraz kafam karıştı... yeni başladığımı görüyorsun ^^

    Sayfa başlığı gibi genel bilgileri zaten yerleştirdim, altbilgimde widget alanları oluşturdum, böylece menüler, ilgili bağlantılar vb. yerleştirebilirim. İşe yaradı.

    Ancak şimdi içeriğimi wordpress'te tasarladığım gibi nasıl gerçekleştirebileceğim konusunda kafam karıştı. Belki bazı anahtar kelimeler onlar hakkında daha fazla okumak için yardımcı olabilir.

  10. Özel bir gönderi türü alanını wp veritabanından nasıl alıp ön yüzde görüntülemek için bir widget kullanabilirsiniz?

  11. İki özel widget ekleyemiyorum.. ikinci widget görünmüyor....
    Ne yapmalıyım???.. lütfen yardım edin

  12. hello, i would like to know where i can find in available widgets the “custom menu”. it doesn’t show and i haven’t been able to add a page to the footer through this widget.

    yardımın için teşekkürler!!!!

  13. Merhaba, metin yerine bir logo nasıl gösterebilirim. logo URL'sini metinle değiştirmek yeterli olur mu.
    Şimdiden teşekkürler.

    • Lütfen tema ayarlarınızı kontrol edin veya yönetici alanında Görünüm » Özelleştirici sayfasına gidin. Orada logo resminizi yüklemek için bir seçenek bulacaksınız.

      Yönetici

  14. Önce widget mi geldi, yoksa uygulama mı?
    Bir widget'ın kaydedilmesi gerekiyor mu, gerekiyorsa nasıl?
    Bir widget veya uygulama fikrinizi en iyi nasıl korursunuz?
    Herkese teşekkürler

  15. Bu talimatlar özel widget'ımı oluşturmak için harika çalıştı. Ancak, yazı tipi boyutunu 60 piksele nasıl değiştireceğimi anlayamadım. Divi tema seçeneklerine CSS ekleyerek metni ortalamayı ve bir çizgi kenarlık eklemeyi başardım. Ancak yazı tipinin stilini nasıl değiştirebilirim lütfen? “font-size:60px” eklemek işe yaramıyor. Yazı tipinin büyük olmasını istiyorum, sayfanın karşısına uzanan bir slogan gibi. Teşekkürler.

  16. Merhaba! Umarım bana yardım edebilirsiniz.

    Bir dükkanın zaman çizelgesini gösteren özel bir gönderi türü oluşturdum. Elbette istediğiniz kadar zaman çizelgesi oluşturabilirsiniz, ancak benim ihtiyacım belirli bir zaman çizelgesini web sitesinin kenar çubuğunda göstermek.

    Bu amaçla, zaman çizelgesi gönderilerini döngüye sokan ve yalnızca 1'i (yani ilkini, ASC sırasına göre sıraladığım için) gösteren bir widget oluşturdum. Bu geçici bir çözümdür, yalnızca widget'ın çalışıp çalışmadığını görmek için ve aslında çalışıyor.

    Arka uçta "timetable" gönderi türüne ait tüm gönderilerin bir açılır liste olarak gösterilmesini istiyorum, böylece ihtiyacım olduğunda seçip ön uçta gösterebilirim. Bunu nasıl yapabilirim?

    Yardım edebilirseniz/ederseniz teşekkürler.

Cevap Bırakın

Yorum bırakmayı seçtiğiniz için teşekkürler. Lütfen tüm yorumların yorum politikamıza göre denetlendiğini ve e-posta adresinizin YAYINLANMAYACAĞINI unutmayın. Lütfen isim alanında anahtar kelime KULLANMAYIN. Kişisel ve anlamlı bir sohbet edelim.