Wordpress Index.php erstellen

wp_logoWenn der Besucher nicht eine bestimmte Seite, Artikel oder Kategorie wählt, ist die index.php für die Standard-Anzeige in Wordpress zuständig. Auch für Anfänger ist es einfach eine index.php zu erstellen. Die Index Seite wird in Wordpress mit Hilfe des “Loop” für die Beiträge erstellt. Ohne einer Schleife(Loop) würde nur ein Beitrag angezeigt werden.

 

Eine einfache voll funktionsfähige index.php

<?php
get_header();
if (have_posts()) :
while (have_posts()) : the_post();
the_content();
endwhile;
endif;
get_sidebar();
get_footer();
?>
  • get_header() ruft die header.php auf (Informationen für den Kopfbereich).
  • Im Loop(Schleife) werden die Beiträge mit the_content() aufgerufen.
  • get_sidebar() ruft die sidebar.php auf (z.B. eine Seitenleiste auf der rechten Seite).
  • get_footer() ruft die footer.php auf (Für den Fussbereich der Seite).

 

 

Es gibt viele Möglichkeiten seine Seite schöner aussehen zu lassen. Hier einige Beispiele für die Gestaltung.

 

Der Loop

Der Loop ist eine Schleife, die solange ausgeführt wird, wie der vorgegebene Wert wahr ist.

Wordpress überprüft zuerst ob alle Dateien vorhanden sind. Als nächstes werden die Einstellungen aus dem Adminbereich abgefragt. Die Anzahl der Beiträge, die angezeigt werden sollen, oder ob Kommentieren erlaubt ist, etc.

 

Diese Informationen werden anschließend aus der Datenbank geholt und in einer Variablen gespeichert. Der Loop greift auf diese Variable zu.

 

Der Anfang des Loop

<?php if (have_posts()) : ?> 
<?php while (have_posts()) : the_post(); ?>   
  • Zuerst wird mit “have_posts()” geprüft, ob Beiträge vorhanden sind.
  • Mit der “while”-Schleife wird “the_post()” solange ausgeführt bis die Anzahl der im Benutzermenü definierten Anzahl an Beiträgen erreicht ist.

 

Titel, Datum und Autor

<h2 id="post-">
<a href="/" rel="bookmark" title="Permalink zu ">
<?php the_title(); ?></a></h2>
<?php the_time('d. F Y') ?> von <?php the_author() ?>
  • Es wird ein Link zum Artikel in der Überschrift gesetzt.
  • Danach die Zeit wann der Beitrag verfasst wurde und von wem er geschrieben wurde.

 

Der Inhalt des Beitrages

<div class="entry">
<?php the_content('Weiterlesen &raquo;'); ?>
</div>
  • Mit “the_content()” wird der Inhalt des Beitrages angezeigt.
  • Die Option “Weiterlesen” erscheint dort wo beim Beitragschreiben der Weiterlesen-Link(more tag) positioniert wurde.

 

Weitere Angaben

Informationen unter jeden Beitrag, wie die Kategorie, Bearbeiten oder Kommentare.

<p class="postmetadata">
Abgelegt in <?php the_category(', ') ?>
<strong>|</strong>
<?php edit_post_link('Bearbeiten','','<strong>|</strong>'); ?> 
<?php comments_popup_link('Keine Kommentare »', '1 Kommentar »', '% Kommentare »'); ?></p>
  • Bearbeiten erscheint auf der Seite nur, wenn der Autor angemeldet ist.
  • Wenn Kommentare für den Beitrag im Benutzermenü erlaubt wurde, wird ein Link angezeigt. Klickt ein Nutzer auf den Kommentar-Link, wird die Artikel-Seite mit den Kommentaren aufgerufen.

 

Das Ende des Loop

<?php endwhile; ?>

Mit dem Behfehl “endwhile” wird der Loop(Schleife) beendet. Angaben die bei jedem Beitrag erscheinen sollen, müssen davor gesetzt werden.

 

Angaben am Ende der Seite

Wenn die Seite im Benutzermenü auf 5 Artikel anzeigen gesetzt ist, erscheint ab Artikel sechs eine zweite Seite. Dazu kann nach dem Loop eine Navigation gesetzt werden.

<div class="navigation">
<div class="alignleft"><?php posts_nav_link('','','&laquo; Zurück') ?></div>
<div class="alignright"><?php posts_nav_link('','Weiter &raquo;','') ?></div>
</div>

Die Navigation ist ausserhalb von Loop, aber innerhalb von der if-Abfrage, Sie wird nur angezeigt wenn Beiträge vorhanden sind.

 

Wenn kein Beitrag gefunden wurde.

<?php else : ?>
 <h2 class="center">Nichts gefunden</h2>
 <p class="center"><?php _e("Es wurde kein Beitrag gefunden."); ?></p>

Mit dem “else”-Befehl kann eine Ausgabe durchgeführt werden, wenn kein Beitrag gefunden wurde.

 

Ende der Beiträge

<?php endif; ?>

“endif” beendet die if-Abfrage für die Beiträge.

 

Beispiel der kompletten index.php

<?php get_header(); ?>
<div id="content" class="narrowcolumn">

<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); // Anfang des Loop ?>

<h2 id="post-<?php the_ID(); ?>">
<a href="/<?php the_permalink() ?>" rel="bookmark" title="Permalink zu <?php the_title(); ?>">
<?php the_title(); ?></a></h2>
<?php the_time('d. F Y') ?> von <?php the_author() ?>

<div class="entry">
<?php the_content('Read the rest of this entry &raquo;'); ?>
</div>

<p class="postmetadata">
Abgelegt in <?php the_category(', ') ?>
<strong>|</strong>
<?php edit_post_link('Bearbeiten','','<strong>|</strong>'); ?>
<?php comments_popup_link('Keine Kommentare »', '1 Kommentar »', '% Kommentare »'); ?></p>

<?php endwhile; // Ende des Loop ?>

<div class="navigation">
<div class="alignleft"><?php posts_nav_link('','','&laquo; Seite vor') ?></div>
<div class="alignright"><?php posts_nav_link('','Weiter &raquo;','') ?></div>
</div>

<?php else : ?>
<h2 class="center">Nichts gefunden</h2>
<p class="center">
<?php _e("Es wurde kein Beitrag gefunden."); ?></p>

<?php endif; ?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

Es wurde noch eine ID und Klasse für die Gestaltung in der CSS-Datei eingefügt.

 

Weitere Themen:

Sidebar oder Footer-Widget erstellen

Sidebar nur für bestimmte Seiten

Theme selbst erstellen

Child-Theme erstellen

Navigationsmenü einbauen

Formatvorlagen

Kommentare   

0 #4 Manni 2012-08-21 22:01
Hallo Heike,

der Befehl "get_template_p art( 'content', get_post_format () )" ruft, durch den Zusatz "get_post_forma t", verschiedene Dateien auf:
"content.php" für die Artikelübersicht
"content-single. php" für einzelne Artikel usw.

In der content-single. php ist der Weiterlesen-Lin k nicht definiert (the_content).

Du kannst in deiner Extra-Page den Zusatz weg lassen, dann wird die content.php aufgerufen.
"get_template_p art( 'content' )"
+1 #3 Heike 2012-08-21 14:44
Hallo Manni,

danke für die Antwort. Demnach müsste der "Weiterlesen Link" ja auch in meiner Extra-Page funktionieren. Tut er nur leider nicht. Deshalb meine Verwirrung. :sigh:

LG, Heike
0 #2 Manni 2012-08-17 17:55
Hallo Heike,

in der index.php steht "get_template_p art( 'content'...", dieser Befehl verweist bei normalen Artikeln auf die "content.php". In der "content.php" ist die Ausgabe des Loop´s genauer definiert.

Der "Weiterlesen Link" ist auch in der "functions.php" konfiguriert.
0 #1 Heike 2012-08-17 16:42
Hallo,

ich nutze WP 3.4.1 und ein Child-Theme von Twenty Eleven 1.4. Funktioniert so weit wunderbar, bis auf die Tatsache, dass ich in meiner Extra-Page, auf der ich nur bestimmte Artikel anzeigen lasse, der "Weiterlesen Link" ignoriert wird. Leider steht in der index.php innerhalb des Loops auch nicht viel mehr als der “the_post()” Befehl und der content Befehl mit nur einer Zeile. Daher wundert es mich, dass der "Weiterlesen Link" dort funktioniert. Weiß hier jemand Rat?

LG, Heike