آموزش وردپرس, مقالات وردپرس, وبلاگ

نمایش مطالب هفته پیشین در وردپرس

چگونه مطالب هفته پیشین را در وردپرس نمایش دهیم؟

آموزش نمایش مطالب هفته های گذشته در وردپرس

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

نمایش مطالب هفته جاری:

در ابتدا با نمایش مطالب هفته جاری آشنا می شویم انجام این کار ساده است و در آن از 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="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;

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

نمایش مطالب هفته پیشین:

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

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;

}

همانطور که در این کد ملاحظه می کنید ما با دو حالت مواجه هستیم یا هفته اول سال است یا نه:

  1. اگر هفته اول سال نباشد به صورت خیلی ساده باید یک واحد از مقدار هفته کم می کنیم.
  2. در حالت دوم که هفته اول سال است شرایط فرق دارد همانطور که می دانیم هر سال 52 هفته است پس باید مقدار هفته گذشته را برابر عدد 52 قرار دهیم و از مقدار سال هم یک واحد کم کنیم.

همانطور که ملاحظه کردید این مشکل را به سادگی برطرف کردیم. حالا هر وقت بخواهیم مطالب هفته گذشته را نمایش دهیم کد <?php wpb_last_week_posts();?> در محل موردنظر در فایل قالب خود به کار می بریم: حتی در صورتی که بخواهیم یک کد کوتاه داشته باشیم و آن را در صفحه یا ابزارک خود استفاده کنیم راه حل بهتری هست که باید کد زیر را در کد بالا قرار دهیم سپس با کد کوتاه [lastweek] در هر جای قالب خود استفاده کنیم.

add_shortcode('lastweek', 'wpb_last_week_posts');

با تشکر از همراهی شما با این قسمت از آموزش وردپرس اگر در رابطه با این پست سوال یا مشکلی دارید در قسمت نظرات اعلام بکنید تا راهنمایی شوید. در صورتی که قصد خرید قالب وردپرس دارید میتوانید به دسته بندی قالب وردپرس مراجعه بکنید.

نوشته های مشابه

دیدگاهتان را بنویسید

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