by Gabriele
2. Juli 2011 20:40
Die Schriftgrößen in der nativen TagCloud von Wordpress (Widget "Schlagwörter") werden per generierten Inline-Styles definiert. Mit einem einfachen Filter in der functions.php im aktuellen Theme-Ordner lassen sich die Stile entfernen. Da ich schon mal eine "Ersetzen-Funktion" darauf anwandte, fügte ich auch gleich ein rel-Attribut mit "nofollow" hinzu.
add_filter ( 'wp_tag_cloud', 'change_style_to_rel_tag_cloud' );
function change_style_to_rel_tag_cloud( $list ) {
$list = preg_replace('/style=("|\')(.*?)("|\')/','rel="nofollow"',$list); return $list;
}
Nun müssen noch die eigenen Stile her. Ich habe die größte Schrift die ich in der TagCloud verwenden will als Standardformat definiert, und dann bis zum 10-fachen Vorkommen diesen Stil überschrieben (kann natürlich noch feiner differenziert werden)
.tagcloud a {
font-size:160%;
}
.tagcloud a[title^='1'] {
font-size:100% !important;
}
.tagcloud a[title^='2'] {
font-size:110% !important;
}
.tagcloud a[title^='3'] {
font-size:115% !important;
}
.tagcloud a[title^='4'] {
font-size:120% !important;
}
.tagcloud a[title^='5'] {
font-size:125% !important;
}
.tagcloud a[title^='6'] {
font-size:130% !important;
}
.tagcloud a[title^='7'] {
font-size:135% !important;
}
.tagcloud a[title^='8'] {
font-size:140% !important;
}
.tagcloud a[title^='9'] {
font-size:145% !important;
}
.tagcloud a[title^='10'] {
font-size:150% !important;
}
Die CSS-Anweisungen (die sich auf den Anfang des Titels beziehen) funktionieren übrigens auch ohne den Filter. !important verhindert, dass die Stile vom Inline-CSS überschrieben werden.
