Viele unserer Anfänger-Leser beginnen bald, ihre WordPress-Themes zu ändern, deshalb haben wir einen WordPress-Theme-Spickzettel, der ihnen den Einstieg erleichtert. Dies bringt einige interessante Herausforderungen für neue Benutzer mit sich. Einer dieser Leser hat uns kürzlich gefragt, wie man die Beiträge der letzten Woche in WordPress anzeigt. Sie wollten nur einen Abschnitt auf ihrer Homepage hinzufügen, der Beiträge aus der Vorwoche anzeigt. In diesem Artikel zeigen wir Ihnen, wie Sie die Beiträge der letzten Woche in WordPress anzeigen.
Bevor wir Ihnen zeigen, wie Sie die Beiträge der Vorwoche anzeigen, werfen wir zunächst einen Blick darauf, wie Sie die Beiträge der aktuellen Woche mit WP_Query anzeigen können. Kopieren Sie den folgenden Code und fügen Sie ihn in die Datei functions.php Ihres Themes oder in ein Site-spezifisches Plugin ein.
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; }
Im obigen Beispielcode haben wir zuerst die aktuelle Woche und das Jahr herausgefunden. Diese Werte haben wir dann in WP_Query verwendet, um Beiträge der aktuellen Woche anzuzeigen. Jetzt musst du nur noch hinzufügen <?php wpb_this_week(); ?>
in Ihrer Theme-Datei, wo Sie die Beiträge anzeigen möchten.
Das war einfach, nicht wahr? Um die Beiträge der letzten Woche anzuzeigen, müssen Sie nur noch minus 1 vom Wochenwert ausgeben. Wenn dies jedoch die erste Woche des Jahres ist, erhalten Sie 0 für die Woche und das laufende Jahr anstelle des letzten Jahres. So beheben Sie dieses 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; }
Im obigen Beispielcode haben wir zwei Checks platziert. Die erste Prüfung setzt den Wert der letzten Woche auf 52 (das ist die letzte Woche in einem Jahr), wenn der Wert der aktuellen Woche 1 ist. Die zweite Prüfung setzt den Wert des Jahres auf das letzte Jahr, wenn der Wert der letzten Woche 52 ist.
Um die Beiträge der letzten Woche anzuzeigen, müssen Sie nur hinzufügen <?php wpb_last_week_posts(); ?>
in die Vorlagendatei Ihres Themes, wo Sie sie anzeigen möchten. Oder wenn Sie einen Shortcode haben möchten, damit Sie diesen in eine Seite oder ein Widget einfügen können, dann fügen Sie diese Zeile einfach unter dem oben angegebenen Code hinzu.
add_shortcode('lastweek', 'wpb_last_week_posts');
Sie können diesen Shortcode jetzt in einem Beitrag, einer Seite oder einem Widget wie diesem verwenden:
[lastweek]
Bitte beachten Sie, dass Sie WP_Query nicht immer benötigen, um benutzerdefinierte Abfragen zu erstellen. WordPress enthält eine Handvoll Funktionen, die Ihnen helfen, aktuelle Beiträge, Archive, Kommentare usw. anzuzeigen. Wenn es eine einfachere Möglichkeit gibt, die vorhandenen Funktionen zu verwenden, müssen Sie nicht wirklich eigene Abfragen schreiben.
Wir hoffen, dieser Artikel hat Ihnen geholfen, die Beiträge der letzten Woche in WordPress anzuzeigen. Experimentieren Sie mit dem Code und passen Sie ihn an Ihre Anforderungen an. Lassen Sie uns wissen, wenn Sie Fragen haben, indem Sie unten einen Kommentar hinterlassen oder besuchen Sie uns auf Twitter.