Inhaltsverzeichnis erstellen
Das war nicht ganz so einfach… Was ich wollte, war ein Inhaltsverzeichnis aller Posts in alphabetischer Reihenfolge, das auf einer statischen Seite erscheinen soll, die in der Sidebar aufgerufen wird.
Erst habe ich zwei Archiv-Plugins getestet, die aber beide nicht so funktionierten, wie ich es wollte. Dann versuchte ich es mit einem Template Tag:
<?php wp_get_archives('type=postbypost&sort=post_title&order=ASC'); ?>
Eigentlich müsste das Ergebnis dieser Archivausgabe genau das sein, was ich haben wollte. Leider ist jedoch, wie ich im wordpress.org-Supportforum las, genau hier ein kleiner Bug in WP, denn das Ganze funktioniert so nicht. Aber es gibt eine Möglichkeit:
Die Datei wp-includes/template-functions-general.php muss bearbeitet werden (vorher Sicherungskopie erstellen!). In Zeile 344 (in meiner WP-Version) steht folgendes:
} elseif ('postbypost' == $type) {
$arcresults = $wpdb->get_results("SELECT * FROM $wpdb->posts WHERE post_date < '$now' AND post_status = 'publish' ORDER BY post_date DESC" . $limit);
Hier muss das “ORDER BY post_date DESC” ersetzt werden durch “ORDER BY post_title ASC”
Dann habe ich ein neues Template erstellt, indem ich die page.php kopiert und als inhalt.php abgespeichert und ganz oben auf der Seite eingefügt habe:
<?php /* Template Name: Inhalt */ ?>
und unter dem “h2″-Absatz dann das Archiv aufgerufen durch
<?php wp_get_archives('type=postbypost'); ?>
Als letztes habe ich eine neue Seite erstellt, unter “Template der Seite” “Inhalt” ausgewählt und diese Seite dann ohne jeglichen Inhalt mit dem Titel “Inhaltsverzeichnis” abgespeichert.
Um diese Seite aufzurufen, habe ich einen Link zu ihr in der Sidebar als “h3″ eingefügt. Wie man dort jetzt sehen kann
Merkwürdig ist allerdings, dass die Posts, die mit einem Umlaut beginnen, ganz oben auf der Liste auftauchen – daher habe ich sie erstmal in Ae.., Oe.., Ue.. geändert.
Solche Änderungen wie die in der template-functions-general.php haben natürlich den Nachteil, dass bei Programm-Updates eventuell auch diese Datei verändert wird und dann erneut eine manuelle Änderung der Datei durchgeführt werden muss. Aber vielleicht funktioniert bei einem Update dann ja das “wp_get_archives”, so dass ich mir das Ändern sparen kann.
Update am 29.10.2006: Ich habe mittlerweile eine andere Möglichkeit gefunden, ein Inhaltsverzeichnis erstellen zu lassen, ohne jedes Mal die wp-includes/template-functions-general.php bearbeiten zu müssen – hier steht, wie.









