02 Temmuz 2009

Eklenti Yazanlara 10 Öneri

WordPress Yorum Ekle

Türkiye'de WordPress'in gelişmesindeki en önemli eksiklik eklenti yazımı. Eklenti yazan çok az WordPress kullanıcısı var ve bu gerçekten üzücü. Bu yazımda eklenti yazanlara, güvenlik ve performans konusunda 10 öneride bulunacağım.

1. Geçerli XHTML Kodu Üretin

Yazdığınız eklenti eğer sitede HTML çıktı verecekse, bunun geçerli olmasına dikkat edin. Yönetim panelinde buna dikkat etmenize gerek yok, ancak site arayüzünde kodların XHTML geçerlilik testine engel olmamasına dikkat edin. Çünkü artık çoğu site sahibi bu konuya önem veriyor ve eğer sizin eklentiniz hatalara neden oluyorsa, site sahipleri eklentinizi kullanmak istemeyebilirler.

2. Bir Yerlere Bağlantı Eklemeyin

Kullanıcının izni olmadan, sitenin bir yerlerine bağlantı eklemeyin. Tabi ki bu durum yönetim panelindeki eklenti ayar sayfası için geçerli değil.

3. Başka Eklentileri İnceleyin

Eklenti tasarlarken, eklentinizin yapacağına yakın iş yapan başka bir eklentiyi inceleyin. İçerisinde bilmediğiniz yöntemler varsa mutlaka bunları not edin. Unutmayın bazı kişiler diğerlerinden daha iyi kodlama yapabilir. Ancak şunu da unutmayın, eklenti yazarı, güncel fonksiyonları ya da kullanışlı fonksiyonları kullanmıyor olabilir.

4. Sitenin 'Header' Alanına CSS/Javascript Kodları Yazdırmayın

Eklentiniz sitede kullanılırken JavaScript ya da CSS kodları eklemeniz gerekebilir. Bu kodları doğrudan eklemek yerine bunları bir dosyaya kaydedip, 'wp_head' kancasını kullanarak, dosyaya bağlantı verin. Bu hem site kaynak kodlarının düzenli olmasını sağlar, hem de kullanıcının CSS/JS kodlarını kolayca düzenlemesine imkan tanır.
Eklediğiniz CSS/JS bağlantısını sadece gerekli sayfalarda eklenmesini sağlayın. Bunun için Koşul Etiketleri sizin en büyük yardımcınız olacaktır. Diyelim ki kodlara sadece ID'sini bildiğiniz bir sayfada kullanmanız gerekiyorsa is_page() fonksiyonu ile sayfada olup, olmadığınızı kontrol ettikten sonra CSS/JS dosyasına bağlantı ekletin.

5. Eklenti Ayarlarını Kaydederken Dizi Kullanın

Eklentilerimizle ilgili birçok ayarı add_option() fonksiyonunu kullanarak WP'nin Options tablosuna kaydederiz. Bu ayarları ayrı ayrı kaydetmektense dizi olarak kaydetmek bize hem koddan hem de harcanan veritabanı alanı bakımından tasarruf sağlayacaktır.
Yanlış:

  1. add_option('Secenek_1', 'Ayar 1');
  2. add_option('Secenek_2', 'Ayar 2');
  3. add_option('Secenek_3', 'Ayar 3');
  4. add_option('Secenek_4', 'Ayar 4');

Doğru:

  1. $ayarlarim = array('Secenek_1'=>'Ayar 1', 'Secenek_2'=>'Ayar 2', 'Secenek_3'=>'Ayar 3', 'Secenek_4'=>'Ayar 4',);
  2. add_option('eklenti_ayarlarim', $ayarlarim);

WordPress verdiğiniz bu diziyi uygun şekilde düzenleyip, veritabanına kaydedecektir.

6. Fonksiyon ve Değişken Adları İyi Seçin

WordPress'te site sahibi birçok eklenti kullanıyor olabilir. Bu eklentilerde eğer aynı isme sahip fonksiyonlar olursa, WP hata verecektir. Ya da aynı isimde değişken kullanmanız, bunları global olarak kullanmanız durumunda eklentiler doğru sonuçlar üretmeyebilirler. Bu nedenle eklentilerinizde fonksiyon/değişken isimlerinde uygun bir ön ek kullanın. Ben kendi eklentilerimde genellikle yg_eklenti_adi_fonksiyon_adı şeklinde bir ön ek kullanıyorum. Aynı eklentiyi kullanıp, farklı eklentiler yazarken de eklenti_adi kısmını dosyada aratıp, değiştiriyorum. Böylece zaman kazanıyorum.
Yanlış:

  1. function save(){
  2. ...
  3. }

Doğru:

  1. function eklenti_adi_save(){
  2. ...
  3. }

7. wp_enqueue_script Fonksiyonunu Kullanın

Diyelim ki eklentinizde jQuery betiğini kullanıyorsunuz ve bunu wp_head kancasıyla eklettiniz. Bunun gibi 4 eklenti jQuery'i eklettiğinde her sayfada jQuery 3 kere fazladan çağırılacaktır. Ancak bu olumsuz durumu kaldırmak için WordPress bize wp_enqueue_script fonksiyonunu sunuyor. Fonksiyon kendisine verilen JS dosyasının bir kez eklenmesini sağlıyor. Yukarıdaki 4 eklenti wp_head kancası yerine bu fonksiyonu kullanırsa, ilgili JS dosyası sadece bir kere çağırılmış olur.

  1. function eklenti_init() {
  2.     wp_enqueue_script('scriptaculous');            
  3. }    
  4.  
  5. add_action('init', 'eklenti_init');

8. Kodlara Yorum Ekleyin

Kodların ne işe yaradığına dair yorum eklemeniz, sonraki geliştirmelerde size yardımcı olacak, ayrıca eklentinizi inceleyenlere de yol gösterecektir. Her ne kadar bu başlangıçta zaman kaybı gibi görünse de sonraki düzenlemelerinizde büyük sazan kazandıracaktır. En azından fonksiyonlarınızın görevlerinin ne olduğuna dair not düşün.

9. WordPress Eklenti Dizinine Yükleyin

Eklentinizi yazdınız ve sitenizde duyurdunuz. Ama siteniz yeniyse, çoğu kimse eklentinizden bihaber olabilir. Eklentinizin daha çok kişiye ulaşabilmesi için onu WordPress.org'daki eklenti dizinine taşımanız yerinde olacaktır. Eklentilerinizi WordPress Dizinine Taşıyın başlıklı yazımda bunu nasıl yapabileceğiniz var. Eklentinizi taşıdığınızda eklentiniz daha çok kişiye ulaşabilecek, kullanıcılar yaptığınız güncellemelerden haberdar olacak ve daha az trafik harcayacaksınız.

10. Oluşturduğunuz Yönetici Sayfalarına Erişimi Sınırlandırın

Eklentiniz için bir yönetici sayfası oluşturduysanız, buna erişimi kontrol edin. Özellikle gelişmiş bir eklenti yazdıysanız ya da site güvenliği için sadece belirli kişilerin bu sayfaya ulaşabilmeleri gerekiyorsa kullanıcının yetkisinin olup, olmadığını kontrol etmeniz yerinde olacaktır. Aşağıdaki gibi bir kod ile kullanıcının düzeyini (level) öğrenip, kontrol edebilirsiniz.

global $user_level;
get_currentuserinfo();
if ($user_level < 8) die('Bu Sayfayı Görmeye Yetkiniz Yok!'); [/php] Eğer sizin de önerileriniz varsa, lütfen yorum yazarak katkıda bulununuz. Kaynak


Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=921.

Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.


“Eklenti Yazanlara 10 Öneri” yazısı için 1 Yorum

Bu yazıya yapılan yorumları dilerseniz, ( RSS 2.0 ) beslemesini kullanarak takibe alabilirsiniz.

  1. Ahmet dedi ki:

    Hocam yazı çok açıklayıcı ve güzel olmuş. Bir fikrim var, onu eklenti halibe çevirmeyi düşünüyorum ve sanırım hazırlamayı düşündüğüm eklenti baya bir sevilecek =) Yazı için teşekkürler.