Iterate durch jeden Menüpunkt in einen Shortcode

Da ich Short-Codes im Menü nicht einfach verwenden kann, gibt es eine einfache Möglichkeit, alle Menüs durch einen Short-Code zu durchlaufen.

Zum Beispiel habe ich ein paar benutzerdefinierte Link-Menüs mit Labels von home, aboutus, Kontakt erstellt und ich wollte diese Etiketten holen und schickte es durch einen kurzen Code und das Menü verwenden die Ausgabe des Short-Code für jeden Menüpunkt.

Solutions Collecting From Web of "Iterate durch jeden Menüpunkt in einen Shortcode"

Beim Durchforsten der Core-Datei gibt es einige schnelle und schmutzige Möglichkeiten (ungetestet):

  • ! is_admin() && add_filter( 'wp_nav_menu_items', 'do_shortcode' );

  • ! is_admin() && add_filter( 'the_title', 'do_shortcode' );

  • ! is_admin() && add_filter( 'walker_nav_menu_start_el', 'do_shortcode' );

Aber ich würde die Menü-Etiketten lieber direkt mit zum Beispiel (ungeprüft) zielen:

 /** * Support shortcodes in the menu labels */ ! is_admin() && add_action( 'nav_menu_link_attributes', 'wpse_shortcode_in_menu' ); function wpse_shortcode_in_menu( $atts ) { add_filter( 'the_title', 'wpse_do_shortcode' ); return $atts; } function wpse_do_shortcode( $content ) { remove_filter( current_filter(), __FUNCTION__ ); return do_shortcode( $content ); }