Viele WordPress Themes haben mehr als eine Sidebar, dies möchten manche nutzen, um die Kategorien an unterschiedlichen Stellen anzuzeigen. Oder aber ganz eigene überschriften für die Navigation zu den Kategorien anzeigen, damit sich User besser auskennen.
edit am 13.1.2008 neues Beispiel und ein Quick & dirty Plugin eingefügt
Achtung: Wer in seine Sidebar Widgets gezogen hat, kann dies so nicht nutzen!
Template Tag wp list categories
Die Kategorien werden mit dem template tag wp list categories angezeigt. Was kann dieser Template Tag, was kann er nicht, wo muss man aufpassen und wie kann man ihn für sich sinnvoll nutzen.
<?php wp_list_categories('arguments'); ?>
Man hat bei diesem Template Tag folgende Möglichkeiten. Neben den // steht die Erklärung dabei.
$defaults = array( 'show_option_all' => '', // zeigt nicht alle Kategorien an 'orderby' => 'name', // zeigt die Kategorien geordnet nach Namen 'order' => 'ASC', // ..in aufsteigender Reihenfolge an 'show_last_update' => 0, //zeigt nicht das Datum der letzten Akutalisierung 'style' => 'list', // Ausgabe erfolgt als ungeordnete Liste 'show_count' => 0, //zeigt nicht wieviele Beiträge in einer Kategorie sind 'hide_empty' => 1, //zeigt leere Kategorien nicht an 'use_desc_for_title' => 1, //zeigt die optionale Kategorienbeschreibung als title Attribut an. 'child_of' => 0, // Ausgabe ist nicht an eine beschränkt auf das Vorhandensein einer bestimmten Unterkategorie 'feed' => '', //zeigt keine Kategoriefeeds Links an 'feed_image' => '', //zeigt keine Bild zum Feed Link an 'exclude' => '', //keine Kategorie ist ausgeschlossen 'include'=>'', //keine Kategorie ist speziell includiert -- schwierig zu erklären irgendwie ;) 'hierarchical' => true, // Unterkategorien werden genau unterhalb der Oberkategorie angezeigt 'title_li' => __('Categories'), //überschrift ist Kategorie 'echo' => 1 // erzeugt die Ausgabe );
Besonderheiten des Template Tags wp list categories
Nutzt Du bei wp list categories include werden eventuell vorhandene Unterkategorien nicht automatisch angezeigt.
Nutzt Du bei wp list categories exclude werden eventuell vorhandene Unterkategorien ebenfalls ausgeschlossen.
Nutzt Du bei wp list categories hide empty = 1 werden Unterkategorien nur dann angezeigt, wenn die Oberkategorie nicht leer ist.
Beispiele mit wp list categories
Alle Kategorien- ausser die Leeren, Anzahl der Beiträge, eigene überschrift,
<ul> <?php wp_list_categories('show_count=1&title_li=<h2>' . __('WordPress Theme') . '</h2>' ); ?> </ul>
Alle Kategorien, auch die leeren, geordnet nach ID der Kategorien, keine automatische überschrift.
<ul><li><h2>individuelle überschrift</h2> <ul><?php wp_list_categories('hide_empty=0&orderby=id&title_li=' ); ?> </ul></li></ul>
Kategorien mit der ID 3,5,7,9 ausgeschlossen, geordnet nach Name absteigend, Anzahl der Beiträge, eigene überschrift.
<ul><li><h2>individuelle überschrift</h2> <ul><?php wp_list_categories('exclude=3,5,7,9&orderby=name&order=DESC&show_count=1&title_li=' ); ?> </ul></li></ul>
Die IDs müssen immer von der kleinsten zur größten geordnet sein, sonst funktioniert dies nicht. Getrennt werden die IDs mit Koma, die letzte bekommt keines mehr .
Wie erwähnt auch die Unterkategorien werden damit ausgeschlossen.
Nur die Kategorien mit der ID 5,7,8 anzeigen. Die optionale Kategorienbeschreibung NICHT als title Attribut nutzen.
<ul> <?php wp_list_categories('include=5,7,8&use_desc_for_title=0' ); ?> </ul>
Die Kategorien ohne überschrift und ohne Listenelemente anzeigen
<?php wp_list_categories('title_li=&style=none'); ?>
Da dann WordPress die Links mit einem <br / > anzeigt, kann man in die functions.php des verwendeten Themes folgendes Quick und Dirty Plugin tippen:
add_filter('wp_list_categories', 'mts_br'); function mts_br ($output) { $output=preg_replace(':<a href(.*)>(.*)</a><br />:','<a href$1> $2 </a>',$output); return $output; }
Artikelhistorie
Erstveröffentlichung:4. Jänner 2008 @ 21:19
Geändert am 13. Jänner 2008 gegen 16.46
Fabian Schulz
13.01.08 um 13:33Ist es möglich alle Kategorien nebeneinander ohne List und ohne Titel darzustellen?
texto
13.01.08 um 16:47Hi Fabian ich habe das Beispiel ganz unten dazugefügt,
dass die Links nebeneinander erscheinen ist dann eine Frage des css.
lg
Fabian Schulz
13.01.08 um 17:12Vielen Dank, doch nun macht er über nach jedem Link einen Zeilenumbruch, gibts da auch ne Möglichkeit dagegen?
texto
13.01.08 um 17:35Hi Fabian habe oberhalb ein Quick & Dirty Plugin dazu hingetippt.
lg
Phillip
20.04.08 um 14:02wo muss man das Quick & Dirty Plugin in der datei genau hinzufügen? (nutze wordpress_DE 2.5)
texto
20.04.08 um 15:42Hi Phillip
in die functions.php des verwendeten Themes,
hat es keine , dann einfach so eine Datei mit einem Texteditor erstellen,
lg
Phillip
20.04.08 um 16:13das de_theme hat eine… nur egeal wo ich das eingefügt habe… es funktionierte nicht.
texto
20.04.08 um 23:03hmm..
ich habe es soeben auf wp 2.5 getestet zuerst diesen Code
< ?php wp_list_categories('title_li=&style=none'); ?und dann das Quick und Dirty ...ratlos irgendwie ich bin ..
Mark
21.05.08 um 10:13Hallo, ich habe WordPress mit einer Statischen Startseite und einer statische Seite “Blog” erzeugt auf der die Blogbeiträge erscheinen. Nun suche ich nach einer Lösung, dass die Blog Kategorien und das Archiv nur dann angezeigt werden, wenn man auf die Seite “Blog” klickt, also nicht auf den statischen Seiten zu sehen ist.
Für eine Idee wäre ich sehr dankbar! Grüße Mark
texto
21.05.08 um 14:46Hi Mark
ab wp 2.5 geht das so:
ich nehme an sidebar.php
lg
Jens Rimbach
28.05.08 um 12:04Hallo,
ich möchte gerne einen eigenen Link auf der Sidebar anzeigen. Wenn ich eine neue Blogroll anlege, erscheint diese automatisch unter der Überschrift “0″ , was ich nicht sehr prickelnd finde. Hättest Du da einen Tipp?
Vielen Dank
texto
28.05.08 um 13:54hi Jens
normalerweise wird der Kategoriename angezeigt
aber ich sehe bei deinem Link nicht mal WordPress….Glaskugeln sind auf Urlaub
lg
hazel
30.07.08 um 22:03hallo, wie kann ich die Kategorien ohne überschrift und ohne Listenelemente anzeigen, aber mit einem Trennelement wie zb. “•” oder “–” versehen?
hoffe auf schnelle antwort, danle
texto
02.08.08 um 22:32das steht im letzten Teil des Artikels, statt des
suche dies
'<a href$1> $2 </a>'und ändere in
'- <a href$1> $2 </a>'texto
10.10.08 um 22:32Hi Florian ja klar ist dies möglich
Du hängst mit einem & einfach den nächsten Paramenter dran
so
lg
Florian
10.10.08 um 22:07Hi, ist es möglich die Anzahl der Artikel in der Kategorie anzeigen zu lassen, wenn ich die Kategorien nebeneinandern angeordnet habe? Wenn ja, wie?
Danke schonmal
MfG Flo
Florian
11.10.08 um 13:11Danke, jetzt wird die Anzahl angezeigt aber die Kategorien werden wieder untereinander dargestellt. :/
texto
11.10.08 um 19:11wunderbar
dann lös es über css
gib den li ein display inline und den li a ein float left
die css class müßt ja da sein
zu mehr Hilfe müßt ichs in Echtzeit sehen
lg
Florian
11.10.08 um 19:19Ok danke für die schnelle Hilfe.^^
Werd das mal probieren.
Paul
28.11.08 um 12:34Hallo,
vielen Dank für diese Liste. Dank euch konnte ich endlich das Problem lösen, das die kategorienbeschreibung immer genutzt wurde.,
Vielen Dank!
David
06.04.09 um 00:32hi, danke für das Tut. Zwar schon ein weilchen her, aber weisst du zufällig auch eine Lösung um Kategorien aus der Liste im Widget in der sidebar.php auszublenden? Ich würde ungern das Core-plugin verändern…
Danke schon mal
texto
06.04.09 um 14:38Hi David Du kannst Dir das Plugin Exec PHP holen und mit diesem kannst Du code direkt in ein Textwidget einfügen-das ist die einfachste Lösung
lg
nastorseriessix
06.07.09 um 21:01Über eine Empfehlung bezüglich Tutorial für mein Kategorie-Problem kam ich hierher und habe erst mal gestöbert. Bis ich dann diesen Artikel hier gefunden habe, aber die darin beschrieben Lösung funktioniert nicht bei mir.
Unter “http://dev.kranzkrone.de” kannst du mal schauen wie es aktuelle aussieht mit den Kategorien im laufenden Betrieb.
Dabei verwende ich “” zum anzeigen der Kategorien.
Das bringt mir zwar die Liste, mit Artikel-Anzeige pro Kategorie, aber nicht als Blockform so nebeneinander. Damit die Erklärung dazu nicht hier den Rahmen sprengt schau doch mal unter: “http://www.blog.kranzkrone.de/2009/07/06/erste-einblicke-in-blog-design-version-3-0/” dort so in der Mitte des Artikel sind 2 Screenshots. Ersterer ist davon wie es bisher lokal aussieht und der zweite wie es aussehen sollte, wie ich es bei einem anderen Blog gesehen habe.
Habe natürlich deine Ausführungen mal probiert, passt aber alles nicht wirklich. Komme da einfach nicht weiter bei meinem Problem und Du scheinst die einzige Hilfequelle in greifbarer Nähe zu sein.
texto
07.07.09 um 11:17wenn die Anzeige mal stimmt –haperts am HTML und CSS —
packe jede Kategorie Einheit in eine Liste ul und drumherum ein div
div id kategorien
ul ….
ul..
diesen ul gibts du eine fixe Breite (ausrechnen wieviel Platz du hast)
980:6 und dann nimmst du überall noch 5px weg aus Sicherheitsgrünen für diverse browser,
jede Liste gibst du dann ein float:left, display:block padding:0 das ist wichtig – sonst krachts im IE
dann gugg mal wies aussieht und meld dich–ich bin ab morgen aber bis Montag nicht gleich erreichbar
lg
nastorseriessix
07.07.09 um 12:46Was genau meinst du mit Kategorie Einheit ?
Die “div id Kategorie” soll ich da eine spezielle id nehmen ?
…..die Unendlichen Fragen eines Laien….
texto
07.07.09 um 17:16ob du diese id humpfitbumpdiichbinlaienun nennst oder kategorienanzeige oder
kategorie ist egal
entscheidend ist dann das diese Name auch in der style.css ist, weil du ihn hineingeschrieben hast und dort designst–aber das ist CSS
und hat so gar nichts mit WP zu tun, das Problem hättest du auch bei einer .html Seite oder Typo3
lg
nastorseriessix
08.07.09 um 17:08Also wenn ich 980 durch 6 teile bekomme ich, 163, 333.. raus. Davon noch 5 weg macht dann 158 (px?)!
Was ich nicht ganz verstehe ist, warum du “jede Liste” geschrieben hast. Ist doch nur eine Liste, die da angezeigt wird, nur diese soll halt eben nebeneinander angezeigt werden anstatt untereinander.
nastorseriessix
08.07.09 um 17:29… Kommentar Bearbeiten Funktion gefunden …
Also ich habe das jetzt so gemacht in der CSS, wobei ich dazu sagen muss das ich wirklich ein Laie bin. Heute ganz besonders, da es lokal total scheisse aussieht jetzt und die Kategorie-Liste sich komplett über den Footer legt.
#footer_cat {
margin: 0px auto;
padding: 0px;
width: 100%;
height: 32px;
background-color: #3B3B3B;
border-bottom: 3px solid #D52300;
}
.footer_cat ul{
float:left
display:block padding:0
}
In der Index sieht es dann so aus:
Ich bin wohl echt zu blöd dazu…
texto
10.07.09 um 12:00nach dem div footer cat
schreibe
<br style=”clear:both;” />
gehts dann besser–?
nastorseriessix
10.07.09 um 15:15Ich schicke dir wohl am besten mal eine E-Mail dazu, da das Kommentarfeld hier teile des Code gefressen hat.
Mit div-id’s kann ich so gar nicht arbeiten, das zerhaut mir alles total, warum weiß ich nicht, dafür bin ich zu sehr Laie…