webentwicklung-frage-antwort-db.com.de

"Alle Beiträge" oder "Archive" -Seite mit WordPress 3.0 erstellen?

Ich möchte eine "All Posts" -Seite im Ocean Bytes-Blog erstellen , die eine ungeordnete Liste aller Titel der bisherigen Beiträge mit jedem Titel enthält Hyperlink zu seinem Blog-Post.

Es scheint mehrere Plugins zu geben, die so etwas tun, aber die meisten listen Wordpress 3.0+ noch nicht als unterstützt auf, oder sie möchten die Blog-Postings nach Jahr und dann nach Monat unterteilen, was nicht erwünscht ist.

Irgendwelche Vorschläge für den "besten Weg"?

Vielen Dank.

3
cpuguru

Am Ende habe ich eine Seitenvorlage mit dem Namen "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(); ?>

  <div id="container">
   <div id="content" role="main">
<h2>Archive of All Posts:</h2>
  <ul>
    <?php wp_get_archives('type=postbypost'); ?>
  </ul>


   </div><!-- #content -->
  </div><!-- #container -->

<?php get_footer(); ?>

Ich habe dann mit dem Wordpress Admin-System eine neue Seite mit dem Titel "Alle Beiträge" erstellt und die Vorlage "Alle Beiträge" aus dem Dropdown-Menü ausgewählt. Musste nichts in den Körper eingeben.

Die resultierende Seite kann über gefunden werden:

www.oceanbytes.org/all-posts/

Die Standardeinstellung für "wp_get_archives" ist "monatlich", aber ich habe "postbypost" gewählt, da ich nur alle Beiträge als lange Liste auflisten wollte. Weitere Optionen finden Sie auf der Wordpress-Website unter Funktionsreferenz/wp get archives

3
cpuguru

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 '<ul>';
  while( have_posts() ):
    the_post();
    echo '<li><a href="';
    the_permalink();
    echo '">';
    the_title();
    echo '</a></li>';
  endwhile;
  echo '</ul>';
endif;
wp_reset_query();

Verwenden Sie dann einfach diese Vorlage für eine Seite, und die Seite wird automatisch generiert. Weitere Informationen zum Ändern der Abfrage finden Sie auf der Codex-Seite for query_posts().

3
John P Bloch

Der "beste Weg" wäre mit einer benutzerdefinierten Seitenvorlage. So wie index.php alle Beiträge durchläuft, können Sie eine benutzerdefinierte Abfrage ausführen, um alle Inhalte zu durchlaufen und nur die gewünschten Informationen (Titel, URL) an den Browser weiterzuleiten.

Hier einige gute Tutorials zum Erstellen einer benutzerdefinierten Seitenvorlage:

3
EAMann