Wielu z naszych czytelników poziomu początkującego wkrótce zacznie modyfikować swoje motywy WordPress, dlatego mamy ściągawkę motywu WordPress, aby pomóc im zacząć. Wiąże się to z interesującymi wyzwaniami dla nowych użytkowników. Jeden z takich czytelników, niedawno zapytał nas, jak wyświetlić zeszłotygodniowe posty w WordPress. Chcieli tylko dodać sekcję na swojej stronie głównej, która wyświetla posty z poprzedniego tygodnia. W tym artykule pokażemy Ci, jak wyświetlić posty z zeszłego tygodnia w WordPress.
Zanim pokażemy, jak wyświetlać posty z poprzedniego tygodnia, przyjrzyjmy się najpierw, jak możesz wyświetlać posty z bieżącego tygodnia za pomocą WP_Query. Skopiuj i wklej następujący kod w funkcjach szablonu.plik php lub wtyczka specyficzna dla witryny.
function wpb_this_week () { $week = date('W'); $rok = Data ('Y'); $the_query = new WP_Query( 'year=' . $rok . "&w=". $tydzień ); if ($the_query->have_posts() ) : while ( $the_query->have_posts ()): $the_query - > the_post(); ?> <H2><a href="<?php the_permalink(); ?> "title=" Stały link do <?php the_title(); ?> "><?php the_title(); ?>< / a > < / H2> <?php the_excerpt(); ?> <?PHP endwhile;?> <?php wp_reset_postdata ();?> <?PHP else:?> <p><?php _e ('Przepraszamy, brak postów spełniających Twoje kryteria.' ); ?>< / p> <?PHP endif; }
W powyższym przykładzie po raz pierwszy dowiedzieliśmy się o bieżącym tygodniu i roku. Następnie użyliśmy tych wartości w WP_Query, aby wyświetlić posty z bieżącego tygodnia. Teraz wszystko, co musisz zrobić, to dodać <?php wpb_this_week(); ?>
w pliku motywu, w którym chcesz wyświetlić posty.
To było proste, prawda? Teraz, aby wyświetlić posty z zeszłego tygodnia, wszystko, co musisz zrobić, to minus 1 od wartości tygodnia. Ale jeśli jest to pierwszy tydzień roku, wtedy otrzymasz 0 dla tygodnia i bieżącego roku zamiast ostatniego roku. Oto jak rozwiązać ten problem.
function wpb_last_week_posts () { $thisweek = date('W'); if ($thisweek != 1) : $lastweek = $thisweek-1; else : $ostatni tydzień = 52; endif; $rok = Data ('Y'); if ($lastweek != 52) : $rok = Data ('Y'); else: $rok = Data ('Y') -1; endif; $the_query = new WP_Query( 'year=' . $rok . "&w=". $ostatni tydzień ); if ($the_query->have_posts() ) : while ( $the_query->have_posts ()): $the_query - > the_post(); ?> <H2><a href="<?php the_permalink(); ?> "title=" Stały link do <?php the_title(); ?> "><?php the_title(); ?>< / a > < / H2> <?php the_excerpt(); ?> <?PHP endwhile;?> <?php wp_reset_postdata ();?> <?PHP else:?> <p><?php _e ('Przepraszamy, brak postów spełniających Twoje kryteria.' ); ?>< / p> <?PHP endif; }
W powyższym przykładowym kodzie umieściliśmy dwie kontrole. Pierwsza kontrola ustawia wartość ostatniego tygodnia na 52 (co jest ostatnim tygodniem w roku), gdy wartość bieżącego tygodnia wynosi 1. Druga kontrola ustawia wartość roku na zeszły rok, gdy wartość ostatniego tygodnia wynosi 52.
Aby wyświetlić posty z zeszłego tygodnia Wystarczy dodać <?php wpb_last_week_posts ();?>
do pliku szablonu motywu, w którym chcesz je wyświetlić. Lub jeśli chcesz mieć krótki kod, dzięki któremu możesz dodać go do strony lub widżetu, po prostu dodaj tę linię poniżej kodu podanego powyżej.
add_shortcode ('last week', 'wpb_last_week_posts');
Możesz teraz użyć tego krótkiego kodu w poście, stronie lub widżecie takim jak ten:
[ostatni tydzień]
Pamiętaj, że nie zawsze potrzebujesz WP_Query do tworzenia niestandardowych zapytań. WordPress zawiera garść funkcji, które pomagają wyświetlać ostatnie posty, archiwa, komentarze itp. Jeśli istnieje łatwiejszy sposób korzystania z istniejących funkcji, nie musisz pisać własnych zapytań.
Mamy nadzieję, że ten artykuł pomógł Ci wyświetlić posty z zeszłego tygodnia w WordPress. Eksperymentuj z kodem i modyfikuj 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.