Wielu naszych czytelników na poziomie początkującym wkrótce zaczyna modyfikować swoje motywy WordPress, dlatego mamy ściągawkę z motywów WordPress, aby pomóc im zacząć. Wiąże się to z kilkoma interesującymi wyzwaniami dla nowych użytkowników. Jeden z takich czytelników zapytał nas ostatnio, jak wyświetlić wpisy z ostatniego tygodnia w WordPressie. Chciał po prostu dodać sekcję na swojej stronie głównej, która wyświetlałaby wpisy z poprzedniego tygodnia. W tym artykule pokażemy, jak wyświetlić wpisy z ostatniego tygodnia w WordPress.
Zanim pokażemy, jak wyświetlić wpisy z poprzedniego tygodnia, przyjrzyjmy się najpierw, jak można wyświetlić wpisy z obecnego, aktualnego tygodnia za pomocą WP_Query. Skopiuj i wklej poniższy kod do pliku functions. php twojego motywu lub wtyczki specyficznej dla witryny.
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; }
.
W powyższym przykładowym kodzie najpierw poznaliśmy obecny, aktualny tydzień i rok. Następnie użyliśmy tych wartości w WP_Query, aby wyświetlić wpisy z obecnego, aktualnego tygodnia. Teraz wszystko, co musisz zrobić, to dodać <?php wpb_this_week(); ?>
w twoim pliku motywu, gdzie chcesz wyświetlić wpisy.
To było proste, prawda? Teraz, aby wyświetlić wpisy z ostatniego tygodnia, wystarczy odjąć 1 od wartości tygodnia. Ale jeśli jest to pierwszy tydzień roku, otrzymasz 0 dla tygodnia i obecnego, aktualnego roku zamiast zeszłego roku. Oto jak można naprawić ten problem.
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; }
.
W powyższym przykładowym kodzie umieściliśmy dwa sprawdzenia. Pierwsze sprawdzenie ustawia wartość ostatniego tygodnia na 52 (który jest ostatnim tygodniem w roku), gdy wartość obecnego tygodnia wynosi 1. Drugie sprawdzenie ustawia wartość roku na ostatni rok, gdy wartość ostatniego tygodnia wynosi 52.
Aby wyświetlić wpisy z ostatniego tygodnia, wystarczy dodać <?php wpb_last_week_posts(); ?>
do pliku szablonu twojego motywu, w którym chcesz je wyświetlić. Lub jeśli chcesz mieć krótki kod, aby dodać go do strony lub widżetu, po prostu dodaj tę linię poniżej kodu podanego powyżej.
add_shortcode('lastweek', 'wpb_last_week_posts');
.
Możesz teraz użyć tego krótkiego kodu we wpisie, na stronie lub w widżecie w ten sposób:
[lastweek].
Pamiętaj, że nie zawsze potrzebujesz WP_Query do tworzenia własnych zapytań. WordPress jest wyposażony w kilka funkcji, które pomagają wyświetlać ostatnie wpisy, archiwa, komentarze itp. Jeśli istnieje łatwiejszy sposób korzystania z istniejących funkcji, to tak naprawdę nie musisz pisać własnych zapytań.
Mamy nadzieję, że ten artykuł pomógł ci wyświetlić wpisy z ostatniego tygodnia w WordPress. Poeksperymentuj z kodem i zmodyfikuj go tak, aby spełniał twoje potrzeby. Daj nam znać, jeśli masz jakieś pytania, zostawiając komentarz poniżej lub dołącz do nas na Twitterze.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Ali Hesari says
This is very useful for me. Thank you.
hitesh says
this is very useful for us. keep it
Kenny says
This would be great if a YouTube video was made available
Allison says
I am curious about when/why I would want to display the week’s posts? On my home page, I display excerpts, so the posts from my past 2 weeks or so are visible. What am I missing here? Thanks!
WPBeginner Support says
You don’t need to. But some other website owners may have a layout where they might want to display previous week’s posts separately. This tutorial is aimed to help those users.
Administrator
faisal adil says
Awesome
Chris McCoy says
you could also take advantage of the new date query http://www.viper007bond.com/2013/08/27/date-queries-in-wordpress-3-point-7/
WPBeginner Support says
Yes date_query can also be used to achieve the same goal.
Administrator