HTML-Tags für Menu Descriptions in WordPress

wall 2568346 1920
Bildquelle: Pixabay, StockSnap

Aktuell arbeite ich an einem Childtheme von TwentySeventeen, in dem die Punkte eines der verwendeten Menüs Kurzbeschreibungen in Form von Zitaten bekommen sollen. Es gibt einen Walker, der Menu Descriptions ausgibt. Doch das ist noch nicht die ganze Miete.

HTML in den Menübeschreibungen wird nämlich durch den Filter strip_tags entfernt. Um das zu unterbinden wird im Chiltheme im after_setup_theme-Hook der Filter entfernt.

function mytheme_setup_theme() {
	// other stuff
	remove_filter( 'nav_menu_description', 'strip_tags' );
}
add_action( 'after_setup_theme', 'mytheme_setup_theme' );

Bei der Ausgabe der Beschreibung genügt es für den Anwendungsfall vorgesehene Tags mit Attributen zuzulaseen, zum Beispiel Spans und Links, wie in der Variable $allowed definiert. Bei Bedarf entsprechend ergänzen.

Im Walker

 function start_el(&$output, $item, $depth=0, $args=array(), $id = 0) {
    	$object = $item->object;
    	$type = $item->type;
    	$title = $item->title;
    	$content = $item->description;
	$permalink = $item->url;
	$allowed = ['span' => ['class'=>[]], a => ['class'=>[]],['src'=>[]]];
	$description.= html_entity_decode(wp_kses($content , $allowed));
// ... $output
}

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

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

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable