Başlangıç seviyesindeki okuyucularımızın çoğu kısa süre sonra WordPress temalarını değiştirmeye başlar, bu yüzden onlara başlamaları için yardımcı olacak bir WordPress tema hile sayfasına sahibiz. Bu, yeni kullanıcılar için bazı ilginç zorluklar getirir. Yakın zamanda böyle bir okuyucu, bize WordPress'te geçen haftanın yazılarını nasıl göstereceğini sordu. Sadece ana sayfalarında geçen haftanın yazılarını gösteren bir bölüm eklemek istediler. Bu makalede, WordPress'te geçen haftanın yazılarını nasıl göstereceğinizi göstereceğiz.
Önceki haftanın yazılarını nasıl göstereceğinizi göstermeden önce, WP_Query kullanarak mevcut haftanın yazılarını nasıl göstereceğinize bir göz atalım. Aşağıdaki kodu temanızın functions.php dosyasına veya siteye özel bir eklentiye yapıştırın.
function wpb_this_week() {
$week = date('W');
$year = date('Y');
$the_query = new WP_Query( 'year=' . $year . '&w=' . $week );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif;
}
Yukarıdaki örnek kodda, önce mevcut haftayı ve yılı bulduk. Ardından bu değerleri mevcut haftanın gönderilerini göstermek için WP_Query'de kullandık. Şimdi yapmanız gereken tek şey, gönderileri göstermek istediğiniz tema dosyanıza <?php wpb_this_week(); ?> eklemek.
Bu basitti, değil mi? Şimdi geçen haftanın gönderilerini görüntülemek için tek yapmanız gereken haftanın değerinden 1 çıkarmak. Ancak bu yılın ilk haftasıysa, o zaman hafta için 0 ve geçen yıl yerine bu yıl alırsınız. İşte bu sorunu nasıl çözeceğiniz.
function wpb_last_week_posts() {
$thisweek = date('W');
if ($thisweek != 1) :
$lastweek = $thisweek - 1;
else :
$lastweek = 52;
endif;
$year = date('Y');
if ($lastweek != 52) :
$year = date('Y');
else:
$year = date('Y') -1;
endif;
$the_query = new WP_Query( 'year=' . $year . '&w=' . $lastweek );
if ( $the_query->have_posts() ) :
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><a href="<?php the_permalink(); ?>" title="Permanent link to <?php the_title(); ?> "><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else: ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif;
}
Yukarıdaki örnek kodda iki kontrol yerleştirdik. İlk kontrol, mevcut haftanın değeri 1 olduğunda geçen haftanın değerini 52'ye (bir yıldaki son hafta) ayarlar. İkinci kontrol, geçen haftanın değeri 52 olduğunda yılın değerini geçen yıla ayarlar.
Geçen haftanın gönderilerini göstermek için, onları nerede göstermek istediğinize bağlı olarak tema şablon dosyanıza <?php wpb_last_week_posts(); ?> eklemeniz yeterlidir. Veya bir sayfaya veya widget'a ekleyebileceğiniz bir kısa kod istiyorsanız, yukarıdaki kodun altına aşağıdaki satırı ekleyin.
add_shortcode('lastweek', 'wpb_last_week_posts');
Artık bu kısa kodu bir gönderide, sayfada veya bir widget'ta şöyle kullanabilirsiniz:
[geçenhafta]
Özel sorgular oluşturmak için her zaman WP_Query'ye ihtiyacınız olmadığını unutmayın. WordPress, son gönderileri, arşivleri, yorumları vb. göstermenize yardımcı olacak birkaç işleve sahiptir. Mevcut işlevleri kullanmanın daha kolay bir yolu varsa, kendi sorgularınızı yazmanıza gerek yoktur.
Umarız bu makale WordPress'te geçen haftanın yazılarını göstermenize yardımcı olmuştur. Kodu deneyin ve ihtiyaçlarınıza göre değiştirin. Yorum bırakarak veya Twitter'da bize katılarak herhangi bir sorunuz olursa bize bildirin.


Ali Hesari
Bu benim için çok faydalı. Teşekkür ederim.
hitesh
bu bizim için çok faydalı. devam edin
Kenny
YouTube'da bir video yayınlanırsa harika olurdu
Allison
Haftanın gönderilerini ne zaman/neden göstermek isteyeceğim konusunda merak ediyorum? Ana sayfamda alıntıları gösteriyorum, bu yüzden geçmişimden yaklaşık 2 haftalık gönderiler görünüyor. Burada neyi kaçırıyorum? Teşekkürler!
WPBeginner Desteği
Gerek yok. Ancak diğer web sitesi sahipleri, önceki haftanın gönderilerini ayrı olarak göstermek isteyebilecekleri bir düzene sahip olabilirler. Bu eğitim, bu kullanıcılara yardımcı olmayı amaçlamaktadır.
Yönetici
faisal adil
Awesome
Chris McCoy
yeni tarih sorgusu http://www.viper007bond.com/2013/08/27/date-queries-in-wordpress-3-point-7/'dan da yararlanabilirsiniz
WPBeginner Desteği
Evet, aynı hedefe ulaşmak için date_query de kullanılabilir.
Yönetici