WordPress – Yazı İçerisindeki Eklenti Çıktılarının Sırasını Değiştirme

WordPress – Yazı İçerisindeki Eklenti Çıktılarının Sırasını Değiştirme

WordPress harika bir içerik yönetim sistemi, ama bazı eksiklikleri de yok değil. Son zamanlarda benim gözüme çarpan en büyük eksiklik, yazı içerisine, kullanılan eklentiler tarafından yüklenen çıktıların sırasını değiştirme seçeneğinin olmamasıydı. Biraz karışık gelmiş olabilir, yazının devamında anlayacağınızdan eminim.

WordPress ile hazırladığımız bloglarda eklentiler de kullanıyoruz. Sosyal paylaşım eklentileri, benzer yazılar eklentisi, gelen arama terimleri eklentisi gibi bazı eklentiler, içerik kısmının sonuna kendi çıktılarını ekliyorlar. Örnek vermek gerekirse, bu yazının hemen bitiminde sırasıyla:

1- Sosyal ağlarda paylaşım eklentisi

2- Facebook Beğen eklentisi

3- Yazar Bilgi eklentisi

4- Benzer yazılar eklentisi

olmak üzere 4 adet eklenti, çıktılarını ekliyor. Sosyal ağlarda paylaşım eklentisinin etkinliğini arttırmak için en başta onun çıktısını göstermek en verimlisi; ama WordPress, varsayılan olarak alfabetik sıralamaya göre eklentileri gösterdiği için, normalde o eklenti yazar bilgi eklentisinin altında çıkıyordu ve bu durum sosyal paylaşım eklentisinin verimini düşürüyordu. Yabancı kaynakları 1-2 saat kadar araştırdım ve sonunda bu durumun çözümünü buldum. Siz de eklenti çıktılarının sırasını düzenlemek isterseniz, nasıl yapacağınız yazının devamında anlatılıyor

Çözümü, benzer durum yaşayanlar için şöyle açıklayayım:

Her eklenti, yazı sonlarına bahsedilen çıktıları WordPress’in add_filter özelliğini kullanarak yerleştiriyor. WordPress, sıralama gibi bir özelliği admin panelinden sunmasa da, WP çekirdek dosyalarında bunun için bir çözüm mevcut. WordPress’in add_filter özelliğine bakacak olursak, filtre şu mantıkla çalışıyor:

<?php add_filter( $fonksiyonun_eklenecegi_etiket, $eklenecek_fonksiyon, $oncelik ); ?>

 Öncelik kısmına bir sayı yazabiliyorsunuz. Küçük değer, yüksek öncelik anlamına geliyor ve add_filter fonksiyonunda varsayılan öncelik değeri 10. Örnek vermek gerekirse, add_filter fonksiyon kodundaki öncelik değeri 9 olan bir eklenti, bu değerden büyük bir değere sahip olan ya da herhangi bir öncelik belirtilmeyen eklentiden daha önce çalıştırılıyor. Böylece öncelikli olan eklentinin çıktısı daha önce gösterilmiş oluyor. Yazının başında bahsettiğim sorunun çözüm mantığı da buradan geliyor zaten.

Yazıya çıktı eklemek isteyen eklentiler, the_content etiketine kendi fonksiyonlarını ekliyorlar. Bizim, sorunumuzu çözmemiz için yapmamız gereken tek şey eklentilerin öncelik değerlerini düzenlemek. Bunun için:

1) Öncelikle aklınızda bir eklenti sırası oluşturun; hangi eklentinin çıktısını hangi sırada göstermek istediğinize karar verin.

2) Sonrasında, cPanel aracılığıyla root/wp-content/plugin/ klasörüne gidin ve sıralamasını değiştirmek istediğiniz eklentinin klasörünü açın.

3) Oradaki php uzantılı dosyaların içerisinde aşağıdaki gibi bir kod olacak, onu bulmalısınız. Değişiklikleri yapmadan önce dosyanın bir yedeğini almayı unutmayın; istenmeyen bir durumla karşılaşmanız ya da kod kümesinin bozulması sonucu yedeği geri yükleyip durumu rahatlıkla kurtarabilirsiniz.

add_filter('the_content', 'eklentinin_fonksiyonu');

 Öncelik değeri tanımlanmış da olabilir tanımlanmamış da; fark etmez.

4) Şimdi yapmanız gereken, bir öncelik değeri belirlemek ya da belirlenen öncelik değerini değiştirmek; böylece eklentilerin yüklenme sırasını ayarlamış olacaksınız. Bunun için, 3. adımdaki kod yerine aşağıdaki kodu ekleyin:

add_filter('the_content', 'eklentinin_fonksiyonu', SAYI);

 5) Önceki adımda eklediğiniz kod içerisindeki SAYI değerine, eklentilerin yüklenmelerini istediğiniz sıraya göre bir değer vermelisiniz. Tercih ettiğiniz sıraya göre bu işlemi diğer eklenti dosyalarında da tekrarlamanız gerekebilir. Unutmayın, küçük değer yüksek öncelik anlamına geliyor ve WordPress’in varsayılan öncelik değeri 10 (yani eklentilerin add_filter fonksiyonunda herhangi bir öncelik değeri belirtilmemişse, WP bu değeri 10 olarak kabul ediyor).

İşlemler bu kadar :) Bu yöntem sayesinde (yazının sonunda da görebileceğiniz gibi) sosyal paylaşım eklentisini daha öncelikli hale getirdim ve ilk önce onun çıktısı ve devamında diğer eklentilerin çıktıları gösteriliyor.

Bu işlemin tek olumsuz yanı; eklenti güncellemesi yaptığınızda, verdiğiniz öncelik değerinin, orjinal eklentideki değere geri dönebilme ihtimali. Böylesi bir durumda aynı işlemi tekrar yapmanız sorunu çözecektir.

Shivam Vaid‘e teşekkürler! (Special thanks to Shivam Vaid!)

Bu Yazıyı Paylaş! Google+! Pinterest!

WordPress – Yazı İçerisindeki Eklenti Çıktılarının Sırasını Değiştirme (2 Yorum)

Yorum Yaz

  1. Faruk diyor ki:

    Merhaba,

    Çok iyi bir yazı olmuş, paylaşım için teşekkürler. Bizim gibi blog kullanıcılarının birçoğunun işine yarayacaktır eminim.

    Benim buna benzer bir problemim daha var, belki bana yardımcı olabilirsiniz. Yazıların sonunda “Oylama” eklentisi var ancak bu eklentinin yazının hemen altında yazının devamı gibi görünmesini değil de yazı konteynırının altında ayrı bir “Oylama” konteynırı açıp orada göstermek istiyorum.

    Ekran görüntüsünde anlatmaya çalıştım: http://hizliresim.com/8Z14QA

    Bunun için bana yardımcı olabilir misiniz? Chrome üzerinde CSS kodlarla oynayarak yapabiliyorum ancak sitenin kaynak kodlarında nereyi değiştireceğimi bir türlü bulamadım.

    Eklenti adı : MyEffecto

  2. Harun diyor ki:

    Çok işime yaradı teşekkür ederim bilgiler için.

YORUM YAZIN


Eksik sayıyı RAKAMLA yazın: