
Öncelikle sizleri @nacin‘in trunk sayfasında alakalı yapı ile yaptığı değişikleri gözlemlemeniz için çalışma dosyalarına bakmanızı öneririm. Link burada. Bununla birlikte gelen wp_week_query gibi hareketli yeni query yapılarının olduğunu da kestirebiliyoruz. Akabinde az sonra oluşturacağımız örnek sorgular ile de daha açıklayıcı anlamış olacaksınız.
Belli saatler arasındaki yazıları listelemek
wp_date_query ile belirli saatler arasında yayınladığınız yazıları listelemek için örnek bir yapı hazırlayalım şimdi. Mesela sabah 9 ile akşam 5 arasında yayına alınmış yazıları bastırmak için hazırladığım örnek query sorgusunu inceleyelim…
// Son eklenen 10 yazı için
// sabah 9 akşam 5 arası olan içerikler
$sekiz_saatlik_yazi = new WP_Query( array(
'date_query' => array(
array(
'hour' => 9,
'compare' => '>=',
),
array(
'hour' => 17,
'compare' => '<=',
),
array(
'dayofweek' => array( 2, 6 ),
'compare' => 'BETWEEN',
),
),
'posts_per_page' => 10,
) );Daha çok meta alanları için karşılaştığımız compare array önermesinin burada sıklıkla kullanılacağı veya aynı mantıkla kullanılacağını görmek olası. Sorgu yapısı olarak wp_new_query ile tamamen aynı sadece string içindeki değerleri bir kaç farklılık gösteriyor hepsi o kadar. Başka örnekler ile konumuzu pekiştirmeye yönelik çalışmaları inceleyelim isterseniz ;Bir güne ait yazıları listelemek
$birgunluk_yazilar = new WP_Query( array(
'date_query' => array(
array(
// String - strtotime()
'after' => 'June 1st, 2013',
// veya array dondurebilirsiniz
'before' => array(
'year' => 2013,
'month' => 8,
'day' => 31,
),
'inclusive' => true,
),
),
'posts_per_page' => -1,
) );Bir yıl önceki yazıları düzenlenme zamanına göre bastırmakBir yıl önce eklenen yazıları düzenlenme zamanına göre listeletmek içinde daha başka bir örnek hazırlayabiliriz. Mesela;
$yillikyazilar = new WP_Query( array(
'date_query' => array(
array(
'column' => 'post_date_gmt',
'before' => '1 year ago',
),
array(
'column' => 'post_modified_gmt',
'after' => '1 month ago',
)
),
'posts_per_page' => -1,
) );Belli zaman aralığındaki yorumları date_query ile listelemekBu özelliğin / class’ın çok heyecan verici olduğunu yinelemeye gerek yok. Oldukça basit kullanımı ve geniş kullanım alanı sayesinde aynı string değerlerini yazılar yerine yorumlar içinde listeleyebiliriz.
$yorumlar = get_comments( array(
'post_ID' => 123,
'date_query' => array(
array(
'after' => '1 week ago',
),
),
) );Yazı id numarası 123 olan yorumları 1 haftadan sonrakiler olmak üzere bu şekilde bastırmamız mümkün oluyor.Date query ile alakalı tüm argümanları da şu şekilde listeleyebiliriz.
'date_query' => array(
'column' => 'özelleştirilebilir, sütun veya query, varsayılanı post_date',
'compare' => 'özelleştirilebilir, bakınız WP_Date_Query::get_compare()',
'relation' => 'özelleştirilebilir, OR veya AND, varsayılan AND',
array(
'column' => 'örnekler yukarıda',
'compare' => 'örnekler yukarıda',
'after' => 'bakınız WP_Date_Query::build_mysql_datetime()',
'before' => 'bakınız, see WP_Date_Query::build_mysql_datetime()',
'inclusive' => 'boolean, after/before için, eşleşen veya eşleşmeyen',
'year' => '4 basamaklı int',
'month' => 'int, 1-12',
'week' => 'int, 0-53',
'day' => 'int, 1-31',
'hour' => 'int, 0-23',
'minute' => 'int, 0-60',
'second' => 'int, 0-60',
),
array(
...
),
..
),Umarım açıklayıcı ve baş ucu niteliği bir başka wordpress temaları için geliştirdiğimiz ve arşivimize dahil ettiğimiz wordpress kod bankası yazısı eklemiş olmuşumdur. Güle güle kullanın.Mutlu kodlamalar.
Kaynak :
http://www.fatihtoprak.com/wordpress...kullanimi.html
