26 Haziran 2009

Yazıları Özel Alana Göre Sıralama

WordPress Yorum Ekle

WordPress'te yazılarla ilgili istatistiki bilgi tutan eklentilerin çoğu, bu bilgileri yazılara birer özel alan ekleyerek takip ederler. Özellikle okunma sayıları ya da oylama türü eklentilerde bu bilgiler "rating", "popularity" ya da "postview" isimli özel alanlar kullanılır. Bazı site sahipleri yazılarını bu özel alanlardaki değerlere göre sıralamak isteyebiliyorlar. Yazıları böyle sıralamak sandığınızdan da kolay.
Yapmanız gereken sitenizin neresinde sıralama yapacaksanız o tema dosyasını açın. Diyelim ki kategorilere tıklandığında, kategorilerdeki yazıların "rating" isimli özel alana göre sıralanmasını istiyorsunuz. Bunun için temanızın Arşivler (archive.php) dosyasını açın ve dosya içerisindeki aşağıdaki kodu bulun.

  1. <?php if (have_posts()) : ?>

Bu kodun hemen üstüne aşağıdaki gibi gerekli sıralama kodunu ekleyin.

  1. <?php
  2.  if ( is_category() ) {
  3.   query_posts($query_string . '&meta_key=rating&orderby=meta_value');
  4.  }
  5. ?>
  6. <?php if (have_posts()) : ?>

Kod içerisindeki meta_key=rating ifadesinde geçen rating yerine istediğiniz özel alan adını yazabilirsiniz. Yalnız yöntemin bir eksiği var. Bu özel alana (rating) sahip olmayan yazılar listelenmiyor. Dolayısıyla yöntemi, eğer bütün yazılarınızda, kullandığınız özel alan eklenmişse, kullanın.


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

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


“Yazıları Özel Alana Göre Sıralama” yazısı için 2 Yorum

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

  1. ali dedi ki:

    Hocam burda anlattıklarınızı yaptım ama bir sorun var o da şu özel alanlarda rating adında değerler veriyorum.Bu şekilde sadece rating değeri almış olan yazılarım gösteriliyor fakat en yüksek rating ile en düşük rating sıralaması olmuyor.sıralama yine tarihe göre oluyor.

  2. Emre Güneş dedi ki:

    Merhaba,
    Eğer sadece bir kategoride bunu yapmak istiyorsak, nasıl bir yöntem izlemeliyiz?
    Bir de bence bu özellik, öncelikle etkinlik, ajanda gibi yazıyı giridğin tarih ile, etkinliğin gerçekleşeceği tarihin farklı olduğu durumlarda çok karşımıza çıkıyor. Özel alan olarak "tarih" bilgisi girmek ve ona göre sıralanmasını istemek mümkün mü?