نمایش نوشته های هفته اخیر وردپرس

بسیاری از افراد مبتدی سریع شروع به ویرایشقالب وردپرس می کنند و معمولا کاربران مبتدی را با چالش های جدید رو به رو می کنند. یکی از این کاربران ما، اخیرا درباره چگونگی نمایش نوشته های هفته اخیر وردپرس درخواست آموزش داده بود. این کاربر می خواست یک بخش را در صفحه اصلی خود قرار دهد که نوشته های هفته گذشته را نمایش می دهد. در این مقاله، ما به شما نحوه نمایش نوشته های هفته اخیر وردپرس را نشان خواهیم داد.
قبل از اینکه به شما نشان دهیم که چگونه برای نمایش نوشته های هفته گذشته اقدام کنید، ابتدا نگاهی به نحوه نمایش پست های هفته فعلی با استفاده از WP_Query می کنیم.

کد زیر را در فایل Functions.php قالب وردپرس خود کپی نمایید.

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="لینک به <?php the_title(); ?> "><?php the_title(); ?></a></h2>
    <?php the_excerpt(); ?>
  <?php endwhile; ?>
  <?php wp_reset_postdata(); ?>
<?php else:  ?>
  <p><?php _e( 'متاسفانه این هفته مطلبی ارائه نشده است' ); ?></p>
<?php endif;
}

در مثال بالا در ابتدا هفته و سال جاری را پیدا کردیم. سپس از آن مقادیر در WP_Query برای نمایش پست از هفته جاری استفاده کردیم. حالا تمام کاری که باید انجام دهید این است که <؟ php wpb_this_week ()؛ ؟> در فایل های قالب وردپرس خود که می خواهید نوشته های هفته جاری را  نمایش دهید، اضافه کنید.
خیلی ساده بود. اکنون برای نمایش پست های هفته گذشته، همه چیزهایی که لازم دارید انجام دهید، حذف منهای 1 از ارزش هفته است. اما اگر این هفته اول سال باشد، به جای سال گذشته 0 و برای هفته و سال جاری به دست خواهید آورد. به شما نشان خواهیم داد که چگونه این مشکل راه رفع کنید.

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="لینک به <?php the_title(); ?> "><?php the_title(); ?></a></h2>
    <?php the_excerpt(); ?>
  <?php endwhile; ?>
  <?php wp_reset_postdata(); ?>
<?php else:  ?>
  <p><?php _e( 'متاسفانه این هفته مطلبی ارائه نشده است' ); ?></p>
<?php endif;
 
}

در کد نمونه بالا ما دو چک را قرار داده ایم. اولین چک مقدار ارزش هفته گذشته را به 52 (که هفته گذشته در یک سال است) تنظیم می کند، زمانی که ارزش هفته جاری 1 است. چک دوم، مقدار سال را به سال گذشته می دهد، زمانی که ارزش هفته گذشته 52 است.
حالا تمام کاری که باید انجام دهید این است که <؟ php wpb_this_week ()؛ ؟> در فایل های قالب وردپرس خود که می خواهید نوشته های هفته جاری را  نمایش دهید، اضافه کنید. یا اگر میخواهید یک کد کوتاه داشته باشید تا بتوانید این را به یک صفحه یا یک ابزارک اضافه کنید،به سادگی کد زیر را به انتهای کد قبلی اضافه کنید.

add_shortcode('lastweek', 'wpb_last_week_posts');

حال کافیست در هر جایی مانند نوشته ها، برگه ها و… که می خواهید نوشته های هفته اخیر را نمایش دهید از کد کوتاه [lastweek] استفاده کنید.

لطفا توجه داشته باشید که شما همیشه به WP_Query نیاز ندارید تا درخواست های سفارشی ایجاد کنید.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

به بالای صفحه بردن