Alphabetische Übersicht der Beiträge oder Seiten ausgeben
Möchte man ein Glossar in seine WordPress-Site integrieren, WordPress als Lexikon missbrauchen oder einfach ein alphabetisches Verzeichnis anbieten, so kann das folgende Plugin verwendet werden:
Das Plugin Alpha List gibt eine alphabetisch sortierte Liste der Beiträge einer oder mehrerer Kategorien aus. Es ist auch möglich, eine alphabetisch sortierte Liste der Seiten erstellen zu lassen, wobei eine oder mehrere Seiten ausgeschlossen werden können.
Und so funktioniert das Plugin:
Download
Installieren
Folgende Schritte führen zur erfolgreichen Installation:
- Kopiere die Datei
alpha-list.phpin das Plugin-Verzeichniswp-content/plugins/ - Aktiviere Alpha List auf der
Plugins-Seite der Admin-Oberfläche.
Benutzen
Die Ausgabe der Liste erfolgt am besten in einem eigenen Seitentemplate. An der Stelle, an der die Liste ausgegeben werden soll, muss die Funktion alpha_postlist() (für Beiträge) bzw. alpha_pagelist() (für Seiten) aufgerufen werden.
Für eine Liste der Beiträge:
<?php if ( function_exists ('alpha_postlist')) { alpha_postlist(); } ?>
Für eine Liste der Seiten:
<?php if ( function_exists ('alpha_pagelist')) { alpha_pagelist(); } ?>
Die Funktion alpha_postlist() hat zwei Parameter. Mit dem ersten kann angegeben werden, dass nur Einträge ausgewählter Kategorien ausgegeben werden können. Mehrere Kategorien müssen dabei durch ein Komma voneinander getrennt werden.
Beispiel: Alphabetische Liste aller Beiträge der Kategorie 2:
<?php if ( function_exists ('alpha_postlist')) { alpha_postlist('2'); } ?>
Beispiel: Alphabetische Liste aller Beiträge der Kategorien 2 und 3:
<?php if ( function_exists ('alpha_postlist')) { alpha_postlist('2,3'); } ?>
Wird dieser Parameter nicht angegeben, werden standardmäßig alle Beiträge ausgegeben.
Der zweite Parameter $show_empty bestimmt, ob auch Anfangsbuchstaben ausgegeben werden sollen, zu denen kein Beitrag existiert. Standardmäßig ist dies nicht der Fall.
Beispiel: Alphabetische Liste aller Beiträge der Kategorie 2, Ausgabe aller Anfangsbuchstaben:
<?php if ( function_exists ('alpha_postlist')) { alpha_postlist('2',1); } ?>
Ausgegeben werden in dieser kompletten Liste Ziffern von 1 bis 0 und Buchstaben von A bis Z.
Die Funktion alpha_pagelist() hat ebenfalls zwei Parameter. Der zweite funktioniert analog zu oben. Mit dem ersten können Seiten angegeben werden, die nicht in der Liste enthalten sein sollen. Mehrere Seiten müssen dabei durch ein Komma voneinander getrennt werden.
Beispiel: Alphabetische Liste der Seiten, Ausschluss der Seiten mit den IDs 4 und 8:
<?php if ( function_exists ('alpha_pagelist')) { alpha_pagelist('4,8'); } ?>
Noch ein wichtiger Hinweis: die alphabetische Sortierung nutzt die Titelform, die auch bei den Permalinks verwendet wird. Wenn man nicht ein Plugin wie o42-clean-umlauts benutzt, dass die Behandlung von Umlauten in Titeln anpasst, wird Ä beim Einsortieren wie A behandelt.
Anpassen
Das Aussehen der Liste kann mit Hilfe von CSS angepasst werden.
- Die ausgegebene Liste (
<ul>) ist mit der CSS-Klasse.abc-listversehen. - Die einzelnen Anfangsbuchstaben sind als Überschriften
<h3>gekennzeichnet. - Unterhalb der Überschriften findet sich jeweils eine Liste (
<ul>) mit den einzelnen Beiträgen. - Die Listenitems haben abwechselnd die Klasse
.abc-oddund.abc-even.
Beispiel:
.abc-list {list-style-type:none;}
sorgt z.B. dafür, dass die Überschriften keine Aufwählungszeichen haben.
Beispiel:
.abc-odd {background:#ccc;} .abc-even {background:#eee;}
gibt den Einträgen wechselnde Hintergründe. Das sieht dann so aus:

Die Aufteilung in mehrere Teillisten ist seit Version 0.2 möglich.
Entwicklung
-
Alpha List 0.4 — 9. Februar 2009
- Eigene Query für die alphabetischen Listen, so dass die ursprüngliche Abfrage erhalten bleibt (wichtig z.B. für Funktionen wie
is_page())
- Eigene Query für die alphabetischen Listen, so dass die ursprüngliche Abfrage erhalten bleibt (wichtig z.B. für Funktionen wie
-
Alpha List 0.3 — 12. August 2008
- Korrektur des Loops
- Auslagerung der Ausgabe eines Eintrags in die Funktion
entryout(), so dass die Ausgabe leichter angepasst werden kann
- Korrektur des Loops
-
Alpha List 0.2 — 29. Januar 2008
- Mit Hilfe der zwei neuen Parameter
$startund$endekann die Liste auf einen Teilbereich (z.B. Buchstaben A-G) beschränkt werden.
- Mit Hilfe der zwei neuen Parameter
-
Alpha List 0.1 — 15. Januar 2008
- Erste Version
Gerade gesehen: Ein anderer Lösungsansatz für das Problem findet sich bei gunnart.
Noch ein verwandtes Plugin: wp-snap.
Hallo, ich benutze Ihre Auflistung, welche ich über google gefunden habe. Ein super plugin, welches ich nur empfehlen kann. habe jedoch ein problem, und weiss nicht weiter. ich möchte gerne noch 2,3 Sachen abändern. Was genau muss ich tun:
Ich würde gerne das ganze was nun verschoben ist an den linken Rand bringen. und ebenfalls ohne punkt davor. die Auflistung der einzelnen Buchstaben (bsp. T) muss auch nicht zwingend sein. Was kann ich tun? und wo?
aber die falschen Kommata am Ende der beiden Zeilen davor (.mininews … und .newscol …) müssen weg, sonst klappt’s nicht
Danke für die Tipps, hat funktioniert. Aber eines Frage ich mich noch. Warum zeigt es mir in der Auflistung ab dem zweiten Buchstaben -> Siehe: http://www.simplycooking.ch/rezepte/ zuvor doch noch eine Aufzählungsgrafik rein? Wie entferne ich diese wie beim ersten Aufzählungspunkt.
Das ist die Hintergrundgrafik der Überschrift h3
Wenn schon, dann müssen im Plugin-Quelltext alle h3 in h6 umgewandelt werden. Über .abc-list h3 könnte man die h3s alternativ auch per CSS umformatieren.
Hallo,
das Plugin zeigt nach der alphabetisch sortierten Liste auch noch alle Beiträge der ausgewählten Kategorie im Volltext an.
http://www.filmtapete.de/videos/
Kann man das verhindern, sodass nur die alphabetische Liste dargestellt wird?
Ja, das kann man verhindern, indem man die Beiträge nicht anzeigen lässt
Also im Kategorietemplate (je nach Theme z.B. category.php oder archive.php) den Loop weglässt. Das ist die Schleife, in der die Beiträge im Volltext angezeigt werden, eingeleitet mit
while (have_posts()). Hat also mit dem Plugin direkt nichts zu tun.Ah, mein Fehler war, dass ich den Code zum Aufrufen des Plugins einfach auf die statische Seite kopiert habe. Jetzt verwende ich ein Template und es funktioniert.
Vielen Dank für die schnelle Hilfe!
hallo mathias,
ich hatte damals im wordpress forum nachgefragt und probiere seit dem mit deinem script rum. gefällt mir gut und ist auch sehr universell einsetzbar. an einer sache scheitere ich aber seitdem und bin mir nicht mal sicher, ob es momentan möglich ist.
ich würde gerne als endergebnis eine art tabelle haben (sprich bsp. a-j in spalte 1 j-s in spalte 2 und s-z in spalte 3. vllt. kannst du mich ja auf den rechten weg führen. danke
Das scheint mir im Moment ohne Änderungen am Plugin nicht möglich.
Man könnte dem Plugin noch weitere Parameter
anfangundendemitgeben, um dann drei Listen ausgeben zu lassen, die man mitfloat:left;nebeneinander positioniert.Vielleicht in einer zukünftigen Version
Mit dem Firefox kann man jetzt schon CSS3 nutzen und der Liste die CSS-Anweisung
verpassen.
Hallo Matthias,
dein plugin scheint genau die richtige lösung für mich zu sein.
ich möchte in der sidebar links zu songtexten alphabetisch auflisten.
wenn ich es richtig verstanden habe, macht Alpha List genau das.
die texte sind als pages organisiert und ich benutze das plugin Page Category Organiser.
gibt es ne möglichkeit vor dem ausführen des plugins eine abfrage zu machen, daß nur pages einer bestimmten category (SongTexte) aufgelistet werden?
Alle nicht-text-seiten manuell auszuschließen erscheint mir etwas mühsam…
ich bin leider immer noch php-anfänger…
Möglich ist sicher (fast) alles. Hier fehlt mir leider im Moment die Zeit, mich in dieses Plugin, das ich nicht kenne, zu vertiefen.
Es gibt das in Kommentar 10 versprochene Update
Hallo,
danke für das geniale Plugin. Ich würde mir eine Möglichkeit wünschen bei den Posts einzelne Kategorien auszuschließen.
Schon mal ausprobiert?
Hallo Matthias, vielen Dank für die Info.
Noch eine kurze Frage: Da ich viele Autoren habe, würde ich diese auch gerne mittels Alpha List ausgeben wollen. Vielleicht kann man das Plugin ja dahingehend erweitern.
Danke für die Anregung. Mal gucken, was sich machen lässt…
Hallo Matthias,
ich möchte dein Plugin für ein Lexikon nutzen.
Habe es auf einem Testblog laufen.
Es ist nur so, dass die Überschrift “Radlexikon” links ausserhalb meines Templates liegt.
Die Auflistung habe ich via CSS schon nach rechts gerückt.
Kann es sein, dass ich vielleicht im extra angelegten Template was vergessen habe….?
Lefdi
Ohne das “live” zu sehen, kann man nicht viel dazu sagen…
Hallo Matthias,
Problem hat sich erledigt.
Ich hatte eine vorhanden PHP Datei genommen und da waren wohl ein paar Parameter falsch.
Habe dann eine funktionierende PHP Datei genommen und diese entsprechend umgebaut.
Jetzt klappt es prima.
Geniales Plugin.
Lefdi
Danke
Dann bin ich ja beruhigt. Ich konnte mir auch nicht vorstellen, dass das Problem etwas mit dem Plugin zu tun hatte
Hallo Matthias,
genau wie für Michael wäre es auch für mich interessant wenn man die Autoren mit ausgeben könnte und bei der Gelegenheit vielleicht auch noch das Datum wann der Bericht erschienen ist..
Danke für das Klasse PlugIn, ich finde es Klasse!!!
BG Olli
Wenn ich das richtig verstanden habe, möchte Michael eine alphabetische Liste aller Autoren, du möchtest dagegen die Titelliste durch Autoren und Datum ergänzen. Ersteres ist in Vorbereitung, zweiteres auch relativ einfach machbar: Alle Stellen, an denen der Titel ausgegeben wird, entsprechend ergänzen:
wird zu
Hallo,
im Grunde klappt es, aber der Author wird nicht ausgegeben..
die Funktion the_author ()gibt nicht den Namen aus, sondern leider gar nichts..
Woran könnte das liegen??
BG Olli
Systemfehler meinerseits, ich habe jetzt in der neuen Version 0.3 den Loop korrekt verwendet und dann klappt es auch mit dem Autor
Außerdem habe ich die Ausgabe in die Funktion
entryout()ausgelagert, so dass die Ausgabe nur an einer Stelle angepasst werden muss.Download
sehr schön, so klappt es auch mit dem Nachbarn
Vielen Dank für Deine Hilfe!!!
Gruß
Olli
Oh, super. Dann warte ich mal geduldig ab
Hallo,
eine Frage: Ist es auch möglich, das Plugin so anzupassen, dass NUR die Registereinträge für die einzelnen Beiträge alphabtisch aufgelistet werden, aber darunter NICHT die einzelnen Beiträge selbst? Das wäre toll!
Vielen Dank schon mal & Grüße
Ernst
Ich bin mir nicht sicher, ob ich das richtig verstehe
Im Moment wird eine Liste der Beitragstitel mit Link zum Beitrag ausgegeben, nicht die Beiträge selbst.
Hallo Matthias,
also ich hatte das Plugin getestet, indem ich auf einer “normalen” Seite in WP das folgende Schnipsel erfasst hatte:
Daraufhin bekam ich
1. die Registereinträge und darunter (auf der gleichen Seite)
2. die vollständigen Beiträge angezeigt.
Vielleicht hab ich ja auch irgendwas falsch gemacht?
Vielen Dank schon mal und Grüße
Ernst
erfadsstg
Ach so…
Die Ausgabe erfolgt am besten in einem eigenen Seitentemplate. Der so genannte “Loop”, also die Stelle, an der die Beiträge normalerweise ausgegeben werden, sollte dort natürlich nicht mit enthalten sein. Der übernimmt sonst nämlich die Ergebnisse der Abfrage (die mit
query_postsgemacht wird) und gibt diese nochmal im normalen Format aus.Hallo Matthias,
ist es möglich die Auflistung 2-spaltig zu gestalten..?
Also Spalte 1 von A – H und Spalte 2 von I – Z….??
Ich hab zwar per CSS schon 2 Spalten deklariert, aber irgendwie müsste ich dem Plugin nun sagen wo der Break kommt.
Grüße
Lefdi
Hallo, schon mal ins Update geschaut?
Hi Matthias,
uuppss…sorry…wer lesen kann ist besser dran.
Trotzdem danke für das schnelle Feedback
Lefdi
Hallo,
ist es möglich Einträge, die mit Zahlen beginnen unter einer hirarchie 0-9 zusammen zu fassen? Würde bei mir schöner aussehen.
Vielen Dank, sonst ein klasse Script!
Gruß,
Ingo
In der aktuellen Version leider (noch) nicht.
Hallo Matthias,
hab mal wieder ein kleines Problem.
Auf meiner Seite benutze ich ja wie bereits erwähnt dein geniales Plugin.
Dieses wird derzeit insgesamt 3x verwendet.
Zum einen beim Lexikon, bei den Radtypen und nun auch bei den Radherstellern.
Nun will ich bei den Radherstellern die TAGS noch unter dem Herstellernamen anzeigen lassen.
Mir wurde im WP-Forum diesbezüglich auch schon geholfen und zwar mit der folgenden Funktion:
Eigentlich sollte das php if bewirken, dass nur die Seite “Radhersteller” mit der Funktion der TAGS beachtet werden soll.
Leider ist es aber so, dass bei allen drei Rubriken nun die TAGS aufgelistet werden.
Ist da der PHP-Code falsch, oder geht das so grundsätzlich gar nicht.
Muss ich eventuell das Plugin 2x installieren….???
Grüße
Lefdi
Das lag daran, dass per
query_posts()die ursprüngliche Query überschrieben wurde. Damit ist die Abfrageis_page()immer falsch. Die neue Version 0.4 korrigiert das.