می خواهیم شروع کنیم به نمایش نوشته های هفته گذشته در وردپرس. برای این کار نیاز به افزودن یک بخش در صفحه اصلی می باشد. دراین مقاله به شما آموزش می دهیم که چگونه نوشته های هفته گذشته را در سایت وردپرس خود نمایش دهید. قبل از آن ابتدا نگاهی بیندازیم به اینکه چگونه می توان نوشته های هفته جاری را با استفاده از WP_Query نمایش داد. ابتدا کد زیر را در فایل functions.php قالب سایتتان کپی کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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 است برای نمایش نوشته های هفته جاری استفاده می کنیم. حال کاری که شما باید انجام دهید اینست که <?php wpb_this_week(); ?> را در فایل تم خود جایی که می خواهید نوشته های شما نمایش داده شود اضافه کنید.
این عمل برای هفته و سال جاری ساده ست. در حال حاضر برای نمایش نوشته های هفته گذشته از ارزش هفته جاری یکی کم میکنیم. حال اگر هفته جاری اولین هفته سال باشد، این عدد تبدیل به صفر می شود. برای حل این مشکل چه باید کرد؟
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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; } |
در این کد ساده بالا، در دو مکان، بررسی قرار داده شده است. اولین بررسی زمانیست که ارزش هفته جاری یک است که در اینصورت ارزش هفته گذشته ۵۲ می شود. دومین بررسی زمانیست که ارزش هفته جاری ۵۲ است که در اینصورت ارزش سال به سال گذشته تبدیل می شود.
برای نمایش نوشته های هفته گذشته شما باید <?php wpb_last_week_posts();?> را به فایل قالب تم خود اضافه کنید جایی که شما قصد دارید تم خود را نمایش دهید. اگر شما می خواهید یک کد کوتاه داشته باشید و آن را به یک صفحه یا ابزارک اضافه کنید، خط زیر را در کد بالا اضافه کنید.
1 |
add_shortcode('lastweek', 'wpb_last_week_posts'); |
شما می توانید از این کد کوتاه در یک نوشته یا صفحه یا ابزارک استفاده کنید: [lastweek]
توجه داشته باشید که همیشه نیاز به WP_Query برای ایجاد پرس و جوهای سفارشی نیست. وردپرس یکسری توابع دارد که به شما کمک می کنند برای نمایش نوشته ها و مطالب بایگانی و نظرات و …
موفق باشید