自定义短代码始终显示在页面顶部

问题描述:

我知道这里有类似的问题,但都包含略有不同的代码。我在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

您的简码正在返回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

好吧,我测试过它在我自己的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