2017-05-03 5 views
0

Ich weiß, dass es hier ähnliche Fragen gibt, aber alle enthalten einen etwas anderen Code als meinen. Ich habe einen benutzerdefinierten Shortcode in der functions.php Datei konfiguriert, und aus irgendeinem Grund wird immer oben auf der Seite angezeigt. Nichts, was ich tue, scheint es zu bewegen. Ist das ein Ergebnis von etwas im Code?Angepasster Shortcode wird immer am Anfang der Seite angezeigt

function menu_shortcode($atts) { 
    return wp_nav_menu(array('theme_location' => 'header')); 
} 
add_shortcode('nav', 'menu_shortcode'); 
+0

Ich denke Nav wird bereits von WordPress verwendet, versuche es zu etwas einzigartigerem zu ändern. – berend

+0

Das machte keinen Unterschied Ich habe Angst:/ – Jack1991

Antwort

1

Ihr Shortcode gibt wp_nav_menu() zurück, aber diese Funktion wird standardmäßig ausgegeben. Shortcodes dürfen keine Ausgabe generieren, daher müssen Sie echo auf false setzen, um dies zu verhindern.

function menu_shortcode($atts) { 
    return wp_nav_menu(array( 
     'theme_location' => 'header', 
     'echo' => false, 
    )); 
} 
add_shortcode('nav', 'menu_shortcode'); 

Dokumentation:

Die Antwort, die Sie auf Ihre ursprüngliche Frage empfangen wurde aktualisiert, um das Problem zu beheben, die Sie beschrieben haben: How to make a PHP function into a short code

+0

Perfekt, danke! – Jack1991

1

In Ordnung, ich habe es auf meinem eigenen Wordpress installiere mit dem folgenden Code getestet:

function menu_shortcode() { 
    return wp_nav_menu(array('theme_location' => 'header')); 
} 
add_shortcode('b3_add_menu', 'menu_shortcode'); 

Ich habe eine Seite mit dem Namen Test und hinzugefügt, um den Shortcode [b3_add_menu] zu. Dies ist das Ergebnis:

Test

Für mich ist das Menü nur im oberen Bereich der Seite nicht angezeigt wird, könnten Sie mir vielleicht sagen, wo Sie Ihren „nav“ Shortcode gesetzt?

+0

Ich benutze ein Text/Code-Modul in der Seite Builder-Plugin, um den Shortcode hinzuzufügen. Ich habe auch versucht, den Standard-Wordpress-Seiteneditor zu verwenden, und der andere Inhalt wird immer noch unter dem geschoben, was durch den Shortcode generiert wird. – Jack1991

Verwandte Themen