web-dev-qa-db-de.com

Shortcode zum Einfügen eines Menüs in den Seitenkörper?

Ich muss ein Menü in den Text einer Seite einfügen. Ich habe diese beiden Plugins gefunden, aber keines funktioniert. Beide wurden seit 6 Jahren nicht mehr aktualisiert:

https://wordpress.org/plugins/custom-menu/

https://wordpress.org/plugins/custom-menu-shortcode/

Ich habe diesen Code gefunden, um meinen eigenen Shortcode zu erstellen

    function print_menu_shortcode($atts, $content = null) {
extract(shortcode_atts(array( 'name' => null, 'class' => null ), $atts));
return wp_nav_menu( array( 'menu' => $name, 'menu_class' => $class, 'echo' => false ) );
}

add_shortcode('menu', 'print_menu_shortcode');

Und dann sollte der Shortcode sein:

[menu name="-your menu name-" class="-your class-"]

Es funktioniert, aber die Klasse wird überhaupt nicht gedruckt. Was ist falsch an der Funktion? Ich muss die Klasse ausdrucken.

1
JPashs

Dieser Code sollte funktionieren. Verwenden Sie "myclass" als Klasse und nicht ".myclass"?

Ist dies für eine bestimmte Verwendung, bei der die Klasse immer dieselbe sein wird? Wenn Sie dies nur an einem Ort verwenden möchten, können Sie dies tun:

    function print_menu_shortcode($atts, $content = null) {
extract(shortcode_atts(array( 'name' => null, 'class' => null ), $atts));
return wp_nav_menu( array( 'menu' => $name, 'menu_class' => 'myclass', 'echo' => false ) );
}

add_shortcode('menu', 'print_menu_shortcode');

Dann ändern Sie den Abschnitt 'menu_class' => 'myclass' mit der von Ihnen benötigten Klasse. Auf diese Weise müssen Sie die Klasse nicht verwenden. Verwenden Sie auch hier nicht das "." hier vor der Klasse.

Verwendung von Kurzcode:

[menu name="menu_name"]
1
rudtek