WordPress Schlagwortwolke nach Kategorie

Bis zur aktuellen Version von WordPress (5.4) gibt es beim mitgelieferten Widget „Schlagwörter-Wolke“ (Tag Cloud) keine Möglichkeit, nur die Schlagwörter einer bestimmten Kategorie anzeigen zu lassen (Tag cloud by category).
Auch die Suche nach einem einfachen – und vor allem aktuellen – PlugIn führte nicht zum gewünschten Ergebnis.

Deshalb hier ein kurzer Quelltext, der so in die functions.php des (Child-) Themes eingefügt werden kann und dann einen entsprechenden Shortcode zur Verfügung stellt:
WiSch Tag Cloud

function wisch_tag_cloud_shortcode( $atts = '' ) {
	$atts = shortcode_atts(
		array(
			'cat_id' => '14',
			'smallest' => '14',
			'largest' => '22',
			'separator' => ' | ',
		), $atts
	);
	
    $category_id = $atts['cat_id']; 
	$query_args = array( 'cat' => $category_id, 'posts_per_page' => -1 );
	$custom_query = new WP_Query( $query_args );
	if ($custom_query->have_posts()) :
		while ($custom_query->have_posts()) : $custom_query->the_post();
			$posttags = get_the_tags();
			if ($posttags) {
				foreach($posttags as $tag) {
					$all_tags[] = $tag->term_id;
				}
			}
		endwhile;
	endif;

	$tags_arr = array_unique($all_tags);
	$tags_str = implode(",", $tags_arr);

	$args = array(
		'echo'      => false,
		'smallest'  => $atts['smallest'],
		'largest'   => $atts['largest'],
		'unit'      => 'px',
		'number'    => 0,
		'format'    => 'flat',	
		'separator' => $atts['separator'],
		'order'     => 'count',
		'include'   => $tags_str
	);
	return wp_tag_cloud($args);
}
add_shortcode( 'wisch_tagcloud', 'wisch_tag_cloud_shortcode' );

Über den neuen Shortcode [wisch_tagcloud] kann dann an beliebiger Stelle eine entsprechene Schlagwörter-Cloud eingebunden werden.

Folgende Attribute stehen dabei zur Verfügung:
[wisch_tagcloud cat_id="14" smallest="14" largest="22" separator=" | "]

CAT_ID = Die ID der gewünschten Kategorie
SMALLEST = Kleinste Schriftgröße
LARGEST = Größte Schriftgröße
SEPARATOR = Trennzeichen zwischen den gelisteten Schlagwörtern
Die Angaben im Beispielaufruf oben stellen die Standardwerte dar.

Um den Shortcode im Widget nutzen zu können, einfach das Textwidget verwenden und dort den Shortcode einfügen.
Alternativ noch eine weitere Zeile in die functions.php einfügen:
add_filter( 'widget_text', 'do_shortcode');

Quellen und Infos: [1][2][3][4]

2 Antworten auf „WordPress Schlagwortwolke nach Kategorie“

  1. Hallo Jörg,

    das klingt auf jeden Fall sehr gut. Danke fürs teilen. Die Seite, kommt in die Lesezeichen.

    Werden die damit auch gleich nach den übergeordneten Kategorien sortiert? Und wenn ja, könnte man manche davon auch ausblenden?

    Beste Grüße, Michael

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.