Archive of All Posts:
- < ?php wp_get_archives('type=postbypost'); ?>
Ich möchte eine “Alle Posts” -Seite im Ocean Bytes-Blog erstellen, die eine ungeordnete Liste aller Titel der bisherigen Posts enthält, wobei jeder Titel auf seinen Blog-Post verweist.
Es scheint einige Plugins zu geben, die so etwas tun, aber die meisten listen WordPress 3.0+ noch nicht als unterstützt auf, oder sie wollen die Blog-Einträge nach Jahr und dann nach Monat unterteilen, was nicht erwünscht ist.
Irgendwelche Vorschläge für den “besten Weg”?
Danke.
Erstellen Sie eine neue Vorlagendatei und führen Sie dies als Schleife aus:
query_posts( array( 'posts_per_page' => -1, 'post_status' => 'publish' ) ); if( have_posts() ): echo ''; while( have_posts() ): the_post(); echo '- '; the_title(); echo '
'; endwhile; echo '
'; endif; wp_reset_query();
Verwenden Sie dann diese Vorlage für eine Seite und die Seite wird automatisch generiert. Weitere Informationen zum Ändern der Abfrage finden Sie auf der Codex-Seite für query_posts()
.
Der “beste Weg” wäre mit einer benutzerdefinierten Seitenvorlage. So wie index.php
alle Posts durchläuft, können Sie eine benutzerdefinierte Abfrage ausführen, um alles zu durchlaufen und nur die gewünschten Informationen (Titel, URL) an den Browser zu senden.
Hier sind einige gute Tutorials zum Erstellen einer benutzerdefinierten Seitenvorlage:
Am Ende habe ich eine Seitenvorlage namens “allposts-page.php” im Ordner “Twenty-Ten Themes” erstellt, die den folgenden Code enthält:
< ?php /** * Template Name: All Posts * * A custom page template for displaying all posts. * * The "Template Name:" bit above allows this to be selectable * from a dropdown menu on the edit page screen. * * @package WordPress * @subpackage Twenty_Ten * @since Twenty Ten 1.0 */ get_header(); ?> Archive of All Posts:
< ?php wp_get_archives('type=postbypost'); ?>
< ?php get_footer(); ?>
Ich habe dann eine neue Seite mit dem WordPress-Admin-System mit dem Titel “Alle Posts” erstellt und die Vorlage “Alle Posts” aus dem Drop-down-Menü ausgewählt. Ich musste nichts in den Körper eingeben.
Die resultierende Seite kann gefunden werden über:
http://www.oceanbytes.org/all-posts/
Der Standard für “wp_get_archives” ist “monatlich”, aber ich habe “postbypost” gewählt, da ich nur alle Beiträge in der langen Liste auflisten wollte. Weitere Optionen finden Sie auf der WordPress-Seite über functionsreferenz / wp get-Archive