2017-05-03 52 views
0

我知道這裏有類似的問題,但都包含略有不同的代碼。我在functions.php文件中配置了自定義短代碼,出於某種原因,它始終顯示在頁面的頂部。我所做的沒有任何事情似乎可以移動它。這是代碼中的東西的結果嗎?自定義短代碼始終顯示在頁面頂部

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

我認爲nav已被wordpress使用,請嘗試將其更改爲更獨特的內容。 – berend

+0

這沒有什麼區別我很害怕:/ – Jack1991

回答

1

您的簡碼正在返回wp_nav_menu(),但該功能默認輸出。不允許短代碼生成輸出,因此您需要將echo設置爲false以防止它。

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

文檔:

你收到你原來的問題的答案已經被更新,以解決您所描述的問題:How to make a PHP function into a short code

+0

完美,謝謝! – Jack1991

1

好吧,我測試過它在我自己的WordPress安裝使用下面的代碼:

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

我創建了一個名爲頁測試,並添加簡碼[b3_add_menu]它。這是結果:

Test

對我來說,菜單是不是在頁面的頂部顯示的唯一,你能也許會告訴我,你放置你的「導航」簡碼?

+0

我在頁面構建器插件中使用文本/代碼模塊來添加短代碼。我也嘗試使用默認的Wordpress頁面編輯器,而其他內容仍然低於由短代碼生成的內容。 – Jack1991