Kateogri: WordPress

WordPress’de Kendi Sosyal Bileşenini Yap!

Yabancı kaynaklı bir sitede bulup Türkçe sitelerde bulamadığım bir yazıyı sizin için anlatacağım arkadaşlar. Bugün anlatacaklarım ile artık kendi temalarınız da kendinize özel bileşen yapabilirsiniz. Ben size Sosyal Ağ Profilleri için anlatacağım siz bunu Reklam Alanı, Youtube Video Kanalı, Instagram Fotoğrafları, Son Tweetler, Flicker Fotoğrafları … şeklinde geliştirebilirsiniz.

Öncelikle functions.php‘i kullandığımız metin editörü ile açalım ve <?php kodundan hemen sonra veya ?> kodundan hemen önce aşağıdaki kodu yazalım ve bileşenimizi çekelim;

require_once('bilesenler/sosyal-hesaplar-bileseni.php');

Şimdi yeni bir sayfa açalım (CTRL+N ile) bu sayfayı da sosyal-hesaplar-bileseni.php ismiyle temamızın içinde bilesenler klasörüne kaydedelim (tabi önce temamıza bilesenler diye klasör açalım 🙂 )

Aşağıdaki kod ile başlıyoruz bileşenimizi oluşturmaya:


<?php
/************************************************************/
/* Sosyal Hesapları Gösteren Bileşen Yapma */
/************************************************************/

     class bsahin_sosyal_Widget extends WP_Widget {

Hemen ardından aşağıdaki kodu yazarak bileşenimizin İsmini ve Açıklamasını yazacağız:

public function __construct() {
               parent::__construct(
                   'bsahin_sosyal_w',
                   'Sosyal Hesaplarım : BurakŞahin', /* Bileşenin Adı */
                   array('description' => __('Sosyal Hesaplarını Gösterir', 'bsahin-framework')) /* Bileşenin Açıklaması */
               );
          }

Hemen arkasından aşağıdaki kodu yazarak bileşenimizin formlarını oluşturacağız:

public function form($instance) {
 $defaults = array(
 'title' => __('Sosyal Hesaplarım', 'bsahin-framework'), /* Sitenizde Gözükecek Başlık Kısmı */
 'sosyal_facebook' => 'http://www.facebook.com/BurakSahin3459',
 'sosyal_twitter' => 'https://twitter.com/BurakSahin59',
 'sosyal_gplus' => 'http://gplus.to/BurakSahin',
 'sosyal_youtube' => '',
 'aciklama' => __('Sosyal ağlarda bize ulaşın.', 'bsahin-framework')
 );

 $instance = wp_parse_args((array) $instance, $defaults);

 ?>

Eğer sizde yukarıdaki olanlar dışında yeni bir alan eklemek istiyorsanız

'sosyal_yenialanismi' => '',

 şeklinde kopyala+yapıştır yapabilirsiniz. Tırnak içini boş bırakırsanız bileşen sayfasında içi boş input olur, birşeyler yazarsanız bileşen sayfasında o yazdıklarınız görünür.

<!-- Başlık -->
 <p>
 <label for="<?php echo $this->get_field_id('title') ?>"><?php _e('Başlık:', 'bsahin-framework'); ?></label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo esc_attr($instance['title']); ?>" />
 </p>

<!-- Açıklama -->
 <p>
 <label for="<?php echo $this->get_field_id('aciklama') ?>"><?php _e('Kısa Açıklama:', 'bsahin-framework'); ?></label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('aciklama'); ?>" name="<?php echo $this->get_field_name('aciklama'); ?>" value="<?php echo $instance['aciklama']; ?>" />
 </p>

<!-- Facebook -->
 <p>
 <label for="<?php echo $this->get_field_id('sosyal_facebook') ?>">Facebook:</label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('sosyal_facebook'); ?>" name="<?php echo $this->get_field_name('sosyal_facebook'); ?>" value="<?php echo $instance['sosyal_facebook']; ?>" />
 </p>

<!-- Twitter -->
 <p>
 <label for="<?php echo $this->get_field_id('sosyal_twitter') ?>">Twitter:</label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('sosyal_twitter'); ?>" name="<?php echo $this->get_field_name('sosyal_twitter'); ?>" value="<?php echo $instance['sosyal_twitter']; ?>" />
 </p>

<!-- Google+ -->
 <p>
 <label for="<?php echo $this->get_field_id('sosyal_gplus') ?>">Google+:</label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('sosyal_gplus'); ?>" name="<?php echo $this->get_field_name('sosyal_gplus'); ?>" value="<?php echo $instance['sosyal_gplus']; ?>" />
 </p>

<!-- YouTube -->
 <p>
 <label for="<?php echo $this->get_field_id('sosyal_youtube') ?>">YouTube:</label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('sosyal_youtube'); ?>" name="<?php echo $this->get_field_name('sosyal_youtube'); ?>" value="<?php echo $instance['sosyal_youtube']; ?>" />
 </p>

Eğer yeni alan eklediyseniz yukarıda işaretli olan 19-23 satırları arasını kopyala+yapıştır yapmalısınız. Daha sonrasında php kodları içinde ki sosyal_twitter yazısını sosyal_yenialanismi şeklinde değiştirmelisiniz (sosyal_ sabittir, yenialanismi sizin seçtiğiniz isim).

Ardından aşağıdaki kodu yapıştıralım:

<?php
 }

 public function update($new_instance, $old_instance) {
 $instance = $old_instance;

 // Başık
 $instance['title'] = strip_tags($new_instance['title']);

 // Açıklama
 $instance['aciklama'] = $new_instance['aciklama'];

// Sosyal Hesaplar
 $instance['sosyal_facebook'] = $new_instance['sosyal_facebook'];
 $instance['sosyal_twitter'] = $new_instance['sosyal_twitter'];
 $instance['sosyal_gplus'] = $new_instance['sosyal_gplus'];
 $instance['sosyal_youtube'] = $new_instance['sosyal_youtube'];

 return $instance;
 }

Eğer yeni alan eklediyseniz 15. satırı kopyala+yapıştır yapabilirsiniz ve yine sosyal_twitter’ı sosyal_yenialanismi şeklinde değiştirmelisiniz.

Son aşamaya geldik aşağıdaki verdiğim kod üzerinde de anlatım yaptıktan sonra en son size php dosyasının tamamını vereceğim:

public function widget($args, $instance) {
 extract($args);

 // Başlığı çeker ve ekrana yazdırır
 $title = apply_filters('widget_title', $instance['title']);

 // Açıklamayı çeker
 $aciklama = $instance['aciklama'];

// Sosyal Hesapları çeker
 $sosyal_facebook = $instance['sosyal_facebook'];
 $sosyal_twitter = $instance['sosyal_twitter'];
 $sosyal_gplus = $instance['sosyal_gplus'];
 $sosyal_youtube = $instance['sosyal_youtube'];

 echo $before_widget;

 if ($title) {
 echo $before_title . $title . $after_title;
 }

 if ($aciklama) {
 echo '<p>' . $aciklama . '</p>';
 }

 echo '<ul class="social-widget clearfix">';

 if ($sosyal_facebook) : ?>
 <li><a href="<?php echo $sosyal_facebook ?>" class="facebook hide-text"></a></li>
 <?php endif;

if ($sosyal_twitter) : ?>
 <li><a href="<?php echo $sosyal_twitter ?>" class="twitter hide-text"></a></li>
 <?php endif;

if ($sosyal_gplus) : ?>
 <li><a href="<?php echo $sosyal_gplus ?>" class="gplus hide-text"></a></li>
 <?php endif;

if ($sosyal_youtube) : ?>
 <li><a href="<?php echo $sosyal_youtube ?>" class="youtube hide-text"></a></li>
 <?php endif;

 echo '</ul>';
 echo $after_widget;
 }
 }

register_widget('bsahin_sosyal_Widget');

?>

12. satırı kopyala+yapıştır yapın ve yeni oluşturduğunuz alan isim ile değiştirin. Ör:

$sosyal_yenialanismi = $instance['sosyal_yenialanismi'];

32-34 arası satırınıda kopyala+yapıştır yapın ve yeni oluşturduğunuz alan ismi ile değiştirin. Ör:

if ($sosyal_yenialanismi) : ?>
 <li><a href="<?php echo $sosyal_yenialanismi ?>"></a></li>
 <?php endif;

Yukarıdaki Kod Ne İşe Yarıyor?

$instance['sosyal_yenialanismi'];

‘dan gelen değişkeni

$sosyal_yenialanismi

‘ne atadık ve bunu 32-34. satırları arasında kullanacağız. 32.satırda if döngüsü ile önce inputu kontrol ediyor eğer $sosyal_yenialanismi doğruysa yani doluysa içi

<li><a href="<?php echo $sosyal_yenialanismi ?>"></a></li>

yukarıdaki kodu ekrana yazdırıyor ve

<?php endif;

endif ile de kapatıyor.

Kodun Tamamı:


<?php
/***********************************************************************************************/
/* Sosyal Hesapları Gösteren Bileşen Yapma */
/***********************************************************************************************/

class bsahin_sosyal_Widget extends WP_Widget {

 public function __construct() {
 parent::__construct(
 'bsahin_sosyal_w',
 'Sosyal Hesaplarım : BurakŞahin',
 array('description' => __('Sosyal Hesaplarını Gösterir', 'bsahin-framework'))
 );
 }

 public function form($instance) {
 $defaults = array(
 'title' => __('Sosyal Hesaplarım', 'bsahin-framework'),
 'sosyal_facebook' => 'http://www.facebook.com/BurakSahin3459',
 'sosyal_twitter' => 'https://twitter.com/BurakSahin59',
 'sosyal_gplus' => 'http://gplus.to/BurakSahin',
 'sosyal_youtube' => '',
 'aciklama' => __('Sosyal ağlarda bize ulaşın.', 'bsahin-framework')
 );

 $instance = wp_parse_args((array) $instance, $defaults);

 ?>
 <!-- Başlık -->
 <p>
 <label for="<?php echo $this->get_field_id('title') ?>"><?php _e('Başlık:', 'bsahin-framework'); ?></label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo esc_attr($instance['title']); ?>" />
 </p>

<!-- Açıklama -->
 <p>
 <label for="<?php echo $this->get_field_id('aciklama') ?>"><?php _e('Kısa Açıklama:', 'bsahin-framework'); ?></label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('aciklama'); ?>" name="<?php echo $this->get_field_name('aciklama'); ?>" value="<?php echo $instance['aciklama']; ?>" />
 </p>

<!-- Facebook -->
 <p>
 <label for="<?php echo $this->get_field_id('sosyal_facebook') ?>">Facebook:</label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('sosyal_facebook'); ?>" name="<?php echo $this->get_field_name('sosyal_facebook'); ?>" value="<?php echo $instance['sosyal_facebook']; ?>" />
 </p>

<!-- Twitter -->
 <p>
 <label for="<?php echo $this->get_field_id('sosyal_twitter') ?>">Twitter:</label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('sosyal_twitter'); ?>" name="<?php echo $this->get_field_name('sosyal_twitter'); ?>" value="<?php echo $instance['sosyal_twitter']; ?>" />
 </p>

<!-- Google+ -->
 <p>
 <label for="<?php echo $this->get_field_id('sosyal_gplus') ?>">Google+:</label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('sosyal_gplus'); ?>" name="<?php echo $this->get_field_name('sosyal_gplus'); ?>" value="<?php echo $instance['sosyal_gplus']; ?>" />
 </p>

<!-- YouTube -->
 <p>
 <label for="<?php echo $this->get_field_id('sosyal_youtube') ?>">YouTube:</label>
 <input type="text" class="widefat" id="<?php echo $this->get_field_id('sosyal_youtube'); ?>" name="<?php echo $this->get_field_name('sosyal_youtube'); ?>" value="<?php echo $instance['sosyal_youtube']; ?>" />
 </p>

 <?php
 }

 public function update($new_instance, $old_instance) {
 $instance = $old_instance;

 // Başık
 $instance['title'] = strip_tags($new_instance['title']);

 // Açıklama
 $instance['aciklama'] = $new_instance['aciklama'];

// Sosyal Hesaplar
 $instance['sosyal_facebook'] = $new_instance['sosyal_facebook'];
 $instance['sosyal_twitter'] = $new_instance['sosyal_twitter'];
 $instance['sosyal_gplus'] = $new_instance['sosyal_gplus'];
 $instance['sosyal_youtube'] = $new_instance['sosyal_youtube'];

 return $instance;
 }

 public function widget($args, $instance) {
 extract($args);

 // Başlığı çeker ve ekrana yazdırır
 $title = apply_filters('widget_title', $instance['title']);

 // Açıklamayı çeker
 $aciklama = $instance['aciklama'];

// Sosyal Hesapları çeker
 $sosyal_facebook = $instance['sosyal_facebook'];
 $sosyal_twitter = $instance['sosyal_twitter'];
 $sosyal_gplus = $instance['sosyal_gplus'];
 $sosyal_youtube = $instance['sosyal_youtube'];

 echo $before_widget;

 if ($title) {
 echo $before_title . $title . $after_title;
 }

 if ($aciklama) {
 echo '<p>' . $aciklama . '</p>';
 }

 echo '<ul class="social-widget clearfix">';

 if ($sosyal_facebook) : ?>
 <li><a href="<?php echo $sosyal_facebook ?>" class="facebook hide-text"></a></li>
 <?php endif;

if ($sosyal_twitter) : ?>
 <li><a href="<?php echo $sosyal_twitter ?>" class="twitter hide-text"></a></li>
 <?php endif;

if ($sosyal_gplus) : ?>
 <li><a href="<?php echo $sosyal_gplus ?>" class="gplus hide-text"></a></li>
 <?php endif;

if ($sosyal_youtube) : ?>
 <li><a href="<?php echo $sosyal_youtube ?>" class="youtube hide-text"></a></li>
 <?php endif;

 echo '</ul>';
 echo $after_widget;
 }
 }

register_widget('bsahin_sosyal_Widget');

?>

En sade ve basit dilde anlatmaya çalıştım takıldığınız yeri yorum kısmından sorabilirsiniz.

Burak Şahin

Merhaba! Ben Burak. 2016 yılında Karadeniz Teknik Üniversitesi Harita Mühendisliği Bölümü’nden mezun oldum. Lise yıllarında HTML & CSS‘e, Üniversite yıllarında WordPress ve Matlab‘e adım attım. Lisans tezimi Matlab üzerinden program yazarak teslim ettim. Çeşitli projeler için WordPress tabanlı yazılımlar geliştirdim.

Paylaş
Yazar
Burak Şahin

Son içerikler

MAMP / WAMP / XAMPP phpMyAdmin Şifresi Değiştirme (2 Adım)

Genellikle Windows ve Mac OS işletim sistemli bilgisayarlarda WordPress tema geliştiricileri localhost kurulumu yapmak için…

10 ay önce

WordPress Admin Şifresi Değiştirme (3 Farklı Yöntem)

Her birey zaman zaman şifrelerini güncellemelidir. WordPress yönetici şifresini değiştirmek oldukça basit bir işlemdir, ancak…

10 ay önce

En İyi 4 Ücretsiz WordPress Emlak Teması

Emlak temaları hakkında daha fazla bilgi edinmek için sizleri ücretsiz WordPress emlak teması serimize davet…

10 ay önce

En iyi 18 ücretsiz kurumsal WordPress teması

Markanız için bir site oluşturmak istiyorsanız en iyi ücretsiz kurumsal WordPress teması seçeneklerine bakabilir ve…

2 yıl önce

5 Adımda Cloudflare ile WordPress Güvenliğini Artırma

Cloudflare ile WordPress güvenliğini artırma çalışmasından önce kısaca size Cloudflare'i neden tercih ettiğimden bahsedeyim. Cloudflare'in…

4 yıl önce

Bitcoin’in Nabzı Burada Atıyor

Son zamanların en gözde yatırım araçlarının başında kripto paralar geliyor. Bir anda yükselişe geçmesi ve…

5 yıl önce

Bu web sitesinde çerezler kullanılıyor.