wp_tag_cloud('unit=pt&number=45&format=flat&');
in WordPress nicht wirklich richtig funktioniert ist bekannt. Darauf hin habe ich versuch mit dem Ausgabeformat Array für PHP weitere zu versuchen. Einen Ansatz dafür kann man auf doku.wordpress-deutschland.org nachlesen:
<?php $tag = wp_tag_cloud('format=array' ); ?>
<meta name="keywords" content="
<?php while (list (, $value) = each ($tag))
{ echo strip_tags($value).", "; } ?>" />
Dieser funktioniert auch soweit, ist aber ohne Links. Wenn man nun diesen so abändert, dass er den HTML-Code nicht mehr entfernt, klappt die Ausgabe nicht mehr richtig. Nach langem hin und her habe ich dann eine Lösung gefunden. Denn ein weiteres Problem ist irgendwie, dass der PHP Code nicht mehr richtig funktioniert, sobald man folgendes einfügt:
echo "<a href=http://www.url.de";
Es liegt dabei nicht an einem falschen Code, sondern speziell an dem “http://“.
Ich weiß leider nicht warum, jedoch habe ich mir eine Alternativlösung gebaut, vielleicht ist das ja bei anderen auch so?
function new_tag_cloud()
{
$counting = mysql_query("SELECT count(term_id) zahl FROM wp_terms");
$row = mysql_fetch_row($counting);
echo "<br>Es werden <b>".$row[0]."</b> Tags verwendet.<br><br>";
$query = mysql_query("SELECT name, slug FROM wp_terms order by name asc");
while($terms = mysql_fetch_array($query))
{
if($terms[slug] != '' && $terms[name] != '') {
echo '<a href=/tag/';
echo $terms[slug];
echo '>';
echo $terms[name];
echo '</a> ';
}
}
}
Man kann diese Funktion nun z.B. in einer PHP Datei des Themes einbauen und dann im Post mit Hilfe eines Plugins wie InlinePHP aufrufen.
[PHP] new_tag_cloud(); [/PHP]

