WordPress Tag-Cloud: Tags mit weniger als 2 Artikeln ausblenden

In dem „Schlagwörter-Wolke“-Widget von WordPress werden standardmäßig auch Tags eingeblendet, die nur bei einem einzigen Artikel vorkommen. Wer jedoch möchte, dass Tags erst erscheinen, wenn sie von mindestens zwei Artikeln genutzt werden, kann dies mit diesem Code-Schnipsel ändern.

Update: Wer es einfach haben möchte kann stattdessen einfach das WordPress Plugin installieren, das ich dafür erstellt habe.

Hierfür bearbeiten wir die Datei functions.php von unserem Theme und fügen folgende Zeilen hinzu:

function mytheme_tag_cloud_sort($tags) {
    $newTags = [];
    foreach($tags as $tag) {
        if($tag->count > 1) {
            $newTags[] = $tag;
        }
    }
    shuffle($newTags);
    return $newTags;
}
add_filter('tag_cloud_sort', 'mytheme_tag_cloud_sort');

Hierbei nutzen wir den tag_cloud_sort-Filter, der eigentlich dazu dient, die Tags zu sortieren und löschen Tags mit nur einem Artikel. Eher anbieten würde sich der Filter wp_generate_tag_cloud_data. Dieser wird aber leider erst aufgerufen nachdem die Berechnung der Schriftgrößen schon stattgefunden hat. Wir müssten die Schriftgrößen also selbst nochmals berechnen, was einigen Mehraufwand bedeuten würde.

Am Ende rufen wir die PHP-Funktion shuffle() auf, um unsere Tags in eine zufällige Reihenfolge zu bringen. Mir gefällt dies persönlich besser, als wenn die Tags nach Größe sortiert sind, aber das ist Geschmackssache. Löscht die Zeile einfach, wenn ihr nicht wollt, dass die Tags bei jedem Seitenaufruf eine andere Reihenfolge haben.

Pingbacks

Kommentare