Yeni başlayan okuyucularımızın çoğu kısa sürede WordPress temalarını değiştirmeye başlar, bu yüzden onlara başlamaları için yardımcı olacak bir WordPress tema hileli sayfası sahibiz. Bu, yeni kullanıcılar için bazı ilginç zorluklar getiriyor. Yakın zamanda bu tür okuyucularımızdan biri, WordPress'te geçen haftanın gönderilerini nasıl göstereceğini sordu. Sadece ana sayfalarında önceki haftadan gönderileri gösteren bir bölüm eklemek istediler. Bu makalede, WordPress'te geçen haftanın gönderilerini nasıl göstereceğinizi göstereceğiz.
Önceki haftanın gönderilerini nasıl göstereceğinizi size göstermeden önce, WP_Query kullanarak mevcut haftanın gönderilerini nasıl göstereceğinize bir göz atalım. Aşağıdaki kodu temanızın functions.php dosyasına veya bir siteye özel eklentiye kopyalayıp 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]
Lütfen, ö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örüntülemenize yardımcı olacak birkaç işleve sahiptir. Mevcut işlevleri kullanmanın daha kolay bir yolu varsa, kendi sorgularınızı yazmanıza gerek kalmaz.
Bu makalenin WordPress'te geçen haftanın gönderilerini görüntülemenize yardımcı olduğunu umuyoruz. Kodu deneyin ve ihtiyaçlarınıza göre değiştirin. Aşağıya yorum bırakarak veya Twitter'da bize katılarak sorularınızı 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 sorgusundan da yararlanabilirsiniz http://www.viper007bond.com/2013/08/27/date-queries-in-wordpress-3-point-7/
WPBeginner Desteği
Evet, aynı hedefe ulaşmak için date_query de kullanılabilir.
Yönetici