geschrieben von Micha am 19. September 2007 | 13 Kommentare
Eine der wesentlichsten Neuerungen in WordPress 2.3 ist die Integration von Tags, welche bisher über Plugins realisiert werden musste. Leider beschränkt sich die Funktionalität der neuen Tags auf die Darstellung der Tags im Template. Da haben die WordPress Entwickler noch eine Menge Arbeit vor sich.
Um vorhandene Tags in WordPress 2.3 zu nutzen, bietet WordPress den Import von Bunny’s Technorati Tags, Jerome’s Keywords, Simple Tagging Tags sowie Ultimate Tag Warrior Tags. Ich habe den Simple Tagging Import getestet und es war nach 3 Schritten erledigt. Auf jeden Fall vorher ein Backup der Datenbank machen.
Es gibt zwei neue Template Tags in WordPress 2.3, the_tags und wp_tag_cloud. Um die Tags zum jeweiligen Beitrag auszugeben, wird the_tags verwendet. wp_tag_cloud stellt eine Tagwolke dar. Schauen wir uns zuerst einmal the_tags genauer an.
the_tags
Die Anweisung im Template sieht so aus:
<?php the_tags(); ?>
Diese Defaultanweisung gibt die Tags kommagetrennt aus. Um die Ausgabe der Tags ein bischen zu individualisieren, stehen drei Parameter zur Verfügung:
<?php the_tags('before', 'separator', 'after'); ?>
- before – Text, der vor den Tags dargestellt wird. Defaultwert Tags:
- separator – Trenner, der zwischen den Tags dargestellt wird. Defaultwert Komma
- after – Text, der nach den Tags dargestellt wird. Kein Defaultwert
Um die Tags unterhalb des Beitrags darzustellen, fügt man in der index.php und/oder der single.php den Template Tag einfach an der entsprechende Stelle ein:
...
<?php the_content(' weiterlesen ...'); ?>
<p><?php the_tags(); ?></p>
...
das Ergebnis sieht dann so aus:
Tags: blog, hören, kaufen, lernen, lesen, reisen, sehen, testen, video, wordpress
<p><?php the_tags('Meine Tags: ', ' • ', '<br />'); ?></p>
ergibt
Meine Tags: blog • css • html • php • video • wordpress
Möchte man die Tags in einer Liste anzeigen, muss als Separator ein schliessendes und ein öffnendes Listenelement verwendet werden, da sonst alle Tags in einem Listenelement stehen:
<ul><?php the_tags('<li>', '</li><li>', '</li>'); ?></ul>
Kommen wir nun zur Tagwolke.
wp_tag_cloud
Es gibt viele Möglichkeiten, eine Tagwolke im Theme zu platzieren. Manche mögen es in der Fussleiste oder in der Sidebar (für die Sidebar ist in WordPress 2.3 ein Tag Cloud Widget verfügbar). Auch eine eigene Seite mit der Tagwolke ist möglich. Um eine Tagwolke zu erzeugen, schreiben wir
<p><?php wp_tag_cloud(); ?></p>
an entsprechender Stelle in unser Template.

Es stehen 9 Parameter zur Verfügung:
- smallest – die kleinste Schriftgrösse. Defaultwert 8pt
- largest – die grösste Schriftgrösse. Defaultwert 22pt
- unit – Maßeinheit der Schriftgrösse. Defaultwert pt
- number – Anzahl der anzuzeigenden Tags. Defaultwert 45
- format – Format der Tagwolke. Es gibt 3 Varianten. Defaultwert flat
- flat – Tags werden mit Leerzeichen getrennt hintereinander angezeigt
- list – Tags in einer ungeordneten Liste mit der Klasse “wp_tag_cloud”.
- array – Ausgabe der Tags in einem Array
- orderby – Sortierung der Tags. Defaultwert name
- name – Sortierung nach dem Namen der Tags
- count – Sortierung nach der Anzahl der Artikel
- order – Sortierung der Tags. Defaultwert ASC
- ASC – Sortierung aufsteigend
- DESC – Sortierung absteigend
- exclude – auszuschliessende Tags. Mehrere kommagetrennt angeben. Kein Defaultwert
- include – einzuschliessende Tags. Mehrere kommagetrennt angeben. Kein Defaultwert
Mehrere Parameter müssen mit einem & voneinander getrennt angegeben werden. Ein Beispiel:
<?php wp_tag_cloud('smallest=8&largest=22&unit=pt&number=30&format=flat&orderby=name&order=asc'); ?>
Das Ergebnis ist eine Tagwolke sortiert nach dem Tagnamen aufsteigend, angezeigte Anzahl der Tags sind 30. Die kleinste Schriftgrösse ist 8pt und die grösste 22pt. Die Tags werden mit Leezeichen getrennt hintereinander ausgegeben.
Wer bisher das Simple Tagging Plugin verwendet hat, wird an dieser Stelle sehr schnell erkennen, das die WordPress Entwickler eine Menge Unfug getrieben haben.
Das Dilemma
Schauen wir uns einmal der erzeugten Quelltest der Tag Cloud an. Ich beschränke mich auf eine Zeile:
<a href='http://localhost/wordpress-23/wordpress/tag/reisen/' class='tag-link-13' title='2 topics' rel="tag" style='font-size: 12.6666666667pt;'>reisen</a>
Das Tag “reisen” erhält automatisch die Klasse “tag-link-13″. Was kann ich mit dieser Klasse im Stylesheet anfangen? Im Grunde genommen garnichts. Die 13 ist die ID von dem Tag “reisen”. Um die Tags unterschiedlich zu stylen, müsste man dazu immer die ID’s der Tags wissen. Macht überhaupt keinen Sinn.
Die Krönung des Ganzen ist jedoch der Inline Style mit der Schriftgrösse. Diese wird von WordPress automatisch kalkuliert. Man kann zwar auch als Maßeinheit % oder em statt pt angeben, das Ergebnis ist jedoch nicht vorhersehbar. Auch gibt es bei der Verwendung von wp_tag_cloud keine Möglichkeit, die Schriftfarbe der Relevanz der Tags anzupassen. Warum wurden nicht einfach Klassen erzeugt, die die Relevanz eines Tags wiedergeben, so wie ich es von Simple Tagging gewohnt bin?
Fazit
Halbherzige Integration der Tags in WordPress 2.3, nicht annähernd die Funktionalität, die man von den Plugins gewohnt ist. Es fehlen grundlegende Sachen wie die Verwaltung von Tags. Die Integration der Tagwolke ist denkbar schlecht gelöst.
Alle, die mit Erscheinen von WordPress 2.3 updaten wollen, haben hoffentlich mit diesem Beitrag eine kleine Hilfe erhalten, die Tags in das eigene Template zu integrieren.
Die Schriftgrösse in Punkten ist noch weniger vorhersehbar, wie man auf solche Ideen kommen kann, ist mir schleierhaft. Noch dazu krumme Werte, das muss mir mal jemand zeigen, wie ein Drucker (oder ein Monitor, der das hier angeblich leisten soll) einen 2/3 grossen Punkt malt
Siehe dazu auch: http://dciwam.de/faq/gute-websites/einheit-pt
@mike, vielleicht habe ich mich nicht richtig ausgedrückt, ich heiße diesen Schwachsinn nicht gut. pt ist aber das kleinste aller Übel und wenigstens lesbar. Wenn ich em wähle, sind die Buchstaben 5cm gross und wenn ich % wähle, nur noch eine Linie von Punkten.
Nee, da habe ich mich wohl nicht richtig ausgedrückt
Ich habe das schon “richtig” so verstanden, dass der Quatsch aus WordPress.org kommt, nicht von Dir.
Was ich aber nicht ganz nachvollziehen kann, welches Problem Du mit Schrift-Grössen in EM hast. Diese kann man ja wieder im Kommabereich und auch kleiner 1 einstellen?
Test (wenn’s hier in den Kommentaren nich läuft, einfach rauslöschen oder ignorieren):
0.5em – 0.9em – 1.5em
Ja sicher geht das. Ich hab hier die Schrift in %. Ist halt nur eine Fummelei, aber man bekommt es hin.
Man sollte nicht vergessen, dass man auch px als Einheit verwenden kann. Diese ist zwar im IE6 nicht skalierbar, aber das ist a) ein UA-Problem, b) im Laufe der Zeit sowieso keines mehr.
Ebenso stellt(e) sich mir die Frage ob man Tags überhaupt einsetzen soll oder muss, weil a) sowieso kaum jemand damit sucht, b) auch die Kategorien dazu eingesetzt werden können:
Ja, auch px ist möglich. Aber all diese Maßeinheiten gehören in ein Stylesheet. Ich weiß nur nicht, warum die Entwickler solchen Code erzeugen. Eine Klasse, mit der man etwas anfangen kann, hätte völlig gereicht.
Kategorien und Tags sind beides Schubladen, in die man etwas hineintut. Nur glaubt man, es geht mit Tags etwas differenzierter. In Wp 2.3 mit der neuen Datenbankstruktur wird das deutlich. Kategorien und Tags stehen beide in der Tabelle terms. Nur in der Tabelle term_taxonomy unterscheiden sie sich durch den Bezeichner category bzw. post_tag. Schlußendlich endet alles in der chronologischen Auflistung von Beiträgen.
Welche ist Variante ist nun besser? Ich weiß es nicht.
Hallo,
passt vielleicht nicht ganz hierher, aber ich suche eine Möglichkeit, dass die User meine Tags durchsuchen können.
Die Ausgabe soll dann eine Ergebnisliste der möglichen Tags sein und nicht die Beiträge.
Gruß markus
markus: 1. sehe ich keine Tags auf deiner Seite und 2. verstehe ich nicht was du meinst.
Hallo Micha,
ist noch nicht implementiert.
Es geht darum, dass ich ein Blog mit sehr vielen Tags aufbauen möchte und um den Usern hier eine gewisse Usability zu ermöglichen, möchte ich diese Tags gerne durchsuchen lassen.
Sprich ich habe folgende Tags:
- Plugins für WordPress
- Plugins für TYPO3
- Plugins für Firefox
- Plugins für Thunderbird
- etc.
Wenn jetzt der User einfach “Plugins” in das Suchfeld eingibt, bekommt er ja alle Beiträge aufgelistet, in denen das Suchwort “Plugins” vorkommt. Wenn es jetzt aber sehr viele sind, finde ich es nicht mehr benutzerfreundliche.
Ich möchte jetzt eine extra Suchmaske haben, dass der User eben wenn er nach “Plugins” sucht eine Auflistung der Tags bekommt, die diese beinhalten.
Wäre dann also folgende Auflistung:
- Plugins für WordPress
- Plugins für TYPO3
- Plugins für Firefox
- Plugins für Thunderbird
Ich hoffe ich habe es halbwegs verständlich erklärt.
Gruß Markus
Da wirst du dir wohl ein Plugin schreiben müssen, da WordPress und auch das Plugin Simple Tags diese Funktionalität nicht liefern.
Dachte ich mir fast schon. Trotzdem Danke fürs angucken