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, kendi blogumda 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, yazı sonlarına çı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:



Ö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 (blog yazılarımı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.

Türkçe Çeviri: http://www.candanblog.com/wordpress-2/wordpress-yazi-icerisindeki-eklenti-ciktilarinin-sirasini-degistirme/
Orjinal Kaynak: http://www.inficone.com/technology/customize-plugin-order-below-wordpress-posts-using-add_filter