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
}
Schreibe einen Kommentar