01 Mart 2009

Alphabetical List Türkçe

WordPress Yorum Ekle

Alphabetical List eklentisi, yazılarınızı istediğiniz kategorilerde alfatetik olarak listelemenizi sağlıyor. Eklentiyi inceledim, Türkçeleştirdim, bazı güvenlik açıkları vardı onları düzelttim ve hizmetinize sundum.

Kurulum ve Kullanım

  • Eklentiyi yazı sonundan indirip, sıkıştırılmış dosya içerisindeki klasörü, sitenizin 'wp-content/plugins' klasörüne yükleyin.
  • Yönetim panelinizden eklentiyi etkinleştirin.
  • Araçlar/Alphabetical List seçeneği ile ulaştığınız sayfada, hangi kategorilerde yazıların alfabetik olarak listelenmesini istiyorsanız, seçip, kaydedin. Seçtiğiniz kategorilere girildiğinde, yazılarınız o kategorilerde alfabetik olarak listelenecektir.

Ekstra

Baba, ben eklenti kullanmak istemiyorum, zaten birkaç tane kategoride bu işi yapmak istiyorum diyorsanız, aşağıdaki kodu temanızın Tema Fonksiyonları (functions.php) dosyasına ekleyin. Kodda geçen kategori ID'lerini değiştirin.

  1. function yg_alfabetik_listele($orderby) {
  2.  if ( is_category( array(9, 12) ) ){
  3.      return "post_title ASC";
  4.   } else {
  5.      return $orderby;
  6.   }  
  7. }
  8. add_filter('posts_orderby', 'yg_alfabetik_listele' );

Kod gayet basit ama bir o kadar da dehşet verici. Koddaki 9 ve 12 sayısı kategorilerin ID'lerini ifade ediyor, kafanıza göre değiştirin, ekleyin, çıkarın. return "post_title ASC" kodu ise tam bir canavar. Burayı değiştirerek yazıları istediğiniz bilgiye göre istediğiniz gibi listelebilirsiniz, yaratıcılığınızın sınırlarını zorlayabilirsiniz.
Unutmadan eğer bütün kategorilerde alfabetik olarak listeleme yapmak isterseniz, is_category( array(9, 12) ) kodunu is_category() olarak değiştirin. Daha fazlası için burayı inceleyin.

Eklentiyi İndirin

WordPress Alphabetical List v.1.0.1


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

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


“Alphabetical List Türkçe” yazısı için 17 Yorum

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

  1. sanatkop dedi ki:

    Merhaba yakup hocam.
    Harika bir kod gerçekten, paylaşımınız için teşekkürler.
    İki şey sormak istiyorum.

    "post_title ASC" kısmıyla ilgili çeşitlemelerle ilgili bir kaynak önerebilir misiniz? Yani, bu konuda yapmak istediklerimizi kod olarak nasıl tanımlayacağımızı nereden öğrenebiliriz?

    Bir kategorideki etkinlikleri, takvim gibi, etkinliğin başlangıç tarihine göre sayfada sınıflandırmak istesem, bunu nasıl yapabilirim.

    Kusura bakmayın lütfen, ikinci sorumu çözebilmek için birinci soruyu sordum aslında, ancak belki her ikisi için de yardım alabilirsem, kendimi şanslı günümde sayacağım. :>)

    Saygıyla.

  2. Yakup Gövler dedi ki:

    http://www.yakupgovler.com/?p=581 adresindeki wp_posts tablosundaki alanların herhangi birine göre sıralama yapabilirsiniz. Zaten post_title de onlardan biri. Örneğin; post_modified_gmt DESC yazarsanız bu durumda yazılar güncelleme durumlarına göre sıralanırlar yani siz bir yazıda düzenleme yaptığınızd abu ilk önce gösterilir.
    İkinci probleminizi anlamadım, örnek bir senaryo üzerinden anlatabilir misiniz? Etkinlikten kastınız yazılar mı yoksa?

  3. sanatkop dedi ki:

    İlginiz için teşekkürler hocam.
    Dediğiniz tabloyu inceleyip yeniden döneceğim size.

    Diyelim ki, sanat etkinlikleri kategorisi var. Normalde bu kategorideki yazılar, tüm kategorilerde olduğu gibi, yayın tarihine göre diziliyor. Ancak, bu kategorinin sayfasını etkinliğin başlama tarihine göre listelemek mümkün mü. Yani en yakın etkinlik en üstte, sonraki onun altında. Sanıyorum, bunun için, kodun tanımlı bir alandan (son güncelleme tarihi gibi) veri çekmesi lazım. Böyle bir şeyi yazıda ya da kod üzerinden tanımlamak mümkün mü onu bilmiyorum. Aslında, google'un takvim eklentisi gibi bir şey, ancak, bunun kategori sayfalarına uyarlanmış hali gibi düşünün.

    Umarım anlatabilmişimdir.

    Saygılar.

  4. Yakup Gövler dedi ki:

    Yapmayı düşündüğünüz sistem için sadece yazıları kullanmak yeterli olmayabilir.
    WP normalde sadece yayımlanmış ve yayım tarihi gelmiş yazıları listeler. Yani ileri tarihli bir yazı normalde listelenmez.
    Şimdi hala netleşmeyen bir nokta var o da etkinliğin başlama tarihini nasıl ifade ediyorsunuz? Başlama tarihi dediğiniz şey yazının neyi oluyor? Yayım tarihi, düzenleme tarihi...?
    Normalde bu tür işleri özel alanlar ile yapmak en uygunu olacaktır. Bağlantıdaki yazılarımı inceleyin, belki bir fikir edinirsiniz.

  5. sanatkop dedi ki:

    Yeniden merhaba hocam. İlgili bağlantınızdaki yazıları ayrıntılı olarak inceleyeceğim. Yalnızca, ondan önce, sorunuza yanıt vermek istedim.

    Diyelim ki, bir konserimiz var, 23 Mart 2009'da
    ve bir sergimiz, 18 Mart 2009'da
    ve bir film gösterimimiz, 10 Mart 2009'da
    ve siteye eklenme sırası aynen yukarıdaki gibi.
    Yani, en yakın etkinlik üçüncü olarak eklenmiş durumda ve ilgili kategori sayfasında da yukarıdaki sırayla çıkıyor. Oysa, yapmayı istediğim, hangi tarihte eklenirse eklensin, en yakın etkinliğin kategori sayfasında en üstte sıralanması, yani bizim örneğimize göre, kategori sayfasındaki yazı sırası, en üstten aşağıya doğru şöyle olmalı: 10 mart, 18 mart, 23 mart. Ya da, bunlardan sonra 12 mart tarihli bir etkinlik girersem, 10 ile 18 arasında listelenmeli.

    Teşekkürler. Saygılar.

  6. sanatkop dedi ki:

    pardon hocam, siteye eklenme sırasını yanlış yazmışım. önce 10 mart, sonra 18 mart, sonra da 23 mart, yani kategori sayfasında en üstte 23 mart çıkıyor. Yoksa mantığım yanlış ifade edilmiş oluyor.
    Saygılar.

  7. Yakup Gövler dedi ki:

    WordPress normalde tarihi gelmiş olan yazıları gösterir, henüz tarihi gelmeyenleri göstermez. Ayrıca tarihi geçmiş etkinlikler ne olacak? Asıl önemli olan ise etkinlik tarihini nasıl belirtiyorsunuz, yani 23 mart, 18 mart, 10 mart yazının neresinde yazıyor?

  8. sanatkop dedi ki:

    Sanıyorum sorun da burada hocam. Yani, bu etkinlik tarihleri yazının içinde mevcut yalnızca. Yani bir bilgi olarak var.

    Belki, etkinlik tarihlerini başlığın başına taşısam ve alfabetik olarak sınıflandırmayı yapılandırsam mı diye düşündüm. Ancak o zaman da şöyle sorun çıkacak.

    10.03.2009 ....
    18.03.2009 ....
    23.03.2009 ....
    08.04.2009 ... (noktalı alanlara etkinliklerin adı gelir)

    etkinlik tarihleri böyle ama, o zaman da alfabetik sıralamada 08.04.2009 en üstte çıkardı, çünkü 8 (nsan) 10 (mart)'dan küçük (alfabetik olarak).

    Velhasıl, çıkamadım içinden hocam....

  9. Yakup Gövler dedi ki:

    Temandaki index.php ya da archive.php dosyasının kopyasını oluşturduktan sonra, örneğin 6 ID'li kategori yazılarını göstermek için bu dosyanın ismini category-6.php olarak değiştirin. Ardından bu dosya üzerinde yazıları istediğiniz gibi göstermeye çalışın. Bunun için query_posts ya da http://www.yakupgovler.com/?p=705 adresindeki yazımda belirttiğim posts_where kancasıyla birşeyler yapmayı deneyebilirsiniz. Bu aralar yoğun olduğumdan daha fazla yardımcı olamayacağım.
    Size tavsiyem özel alanlarla ilgili yazılarımı inceleyip, buradan birşeyler çıkarmaya çalışın.

  10. sanatkop dedi ki:

    Daha nasıl yardımcı olacaksınız sayın hocam. Balık tutmayı öğretiyorsunuz burada. Sağlam bir okuma yapacağımdan ve deneyeceğimden emin olabilirsiniz. Deneyimlerimin sonuçlarını da buradan paylaşmak isterim. Benzer sıkıntıları olanlar için bir deneyim olur.

    Çalımalarınızda kolaylıklar diliyorum.
    Saygıyla...

  11. melankoli dedi ki:

    wp tabanlı açmayı düşündüğüm sözlük vari sitem için böyle bir eklenti arıyordum nedense ne ararsam ariyim burda buluyorum teşekkürler yakup hocam.

  12. serkan dedi ki:

    hocam merhaba bu kod çok işime yaradı sağolun. Ama ben asıl olarak etiketleri alfabetik listelemek istiyordum. bunu nasıl yapabiliriz bunun için bir kod var mı acaba. Teşekkürler

  13. Yakup Gövler dedi ki:

    @serkan, etiketleri nerede alfabetik sıralamak istiyorsunuz? Yan menüde gösterirken sıralamak istiyorsanız http://www.yakupgovler.com/?p=398 adresindeki bileşenimi kullanın.

  14. serkan dedi ki:

    Özür dilerim hocam, iki anlama gelecek şekilde sormuşum. Aslında ben etiketlere atadığımız yazılarımızı alfabetik listelemek istiyordum. tag.php veya archiva.php sayfasına hangi kodu koyarsak ya da hangi eklentiyi kullanırsak bunu yapabilriz. Bununla ilgili bayağı aradım ama bulamadım. Sizin bir fikriniz var mı bu konuda. Şimdiden teşekkürler.

  15. Yakup Gövler dedi ki:

    Yazımdaki kodu bunun için kullanabilirsiniz.
    Kod içerisindeki yg_alfabetik_listele ifadelerini yg_tag_alfabetik_listele olarak değiştirin. Kod içerisindeki
    is_category( array(9, 12) )
    kodunun yerine
    is_tag()
    kodunu yazın olacaktır. Olmazsa yazımda yanlış yapmışsınız demektir.
    Bu şekilde değişiklikler yaparak ve buradaki koşul ifadelerini kullanarak, istediğiniz yerde, istediğiniz gibi sıralama yapabilirsiniz.

  16. ali dedi ki:

    Hocam ben bir kategorideki yazılarımı okuyucuların verdikleri oylara göre sıralamak istiyorum.Örneğin en fazla oy almış yazım en önce daha az oy almış olan yazılarım ise en sonda görünsün.Bunun için yaptığım araştırmada ingilizce bazı kaynaklar buldum.İngilizcemin çok iyi olmamasından dolayı çalışmalarım yarıda kaldı.Neticeye ulaşamadım.Ama eminim bu istediğim çok zor olmasa gerek.wp içinde order olarak geçen yerlerde date karşlığı yerine rating değerini vermek gerektiğini düşünüyorum.Ama problem bu rating değerini nereden nasıl alacağı.Bu konuda fikirlerinizi öğrenmek isterim.

    Saygılar

  17. Yakup Gövler dedi ki:

    http://www.yakupgovler.com/?p=916
    adresindeki yazımı inceleyin.