自定义短代码始终显示在页面顶部
我知道这里有类似的问题,但都包含略有不同的代码。我在functions.php
文件中配置了自定义短代码,出于某种原因,它始终显示在页面的顶部。我所做的没有任何事情似乎可以移动它。这是代码中的东西的结果吗?自定义短代码始终显示在页面顶部
function menu_shortcode($atts) {
return wp_nav_menu(array('theme_location' => 'header'));
}
add_shortcode('nav', 'menu_shortcode');
您的简码正在返回wp_nav_menu()
,但该功能默认输出。不允许短代码生成输出,因此您需要将echo设置为false以防止它。
function menu_shortcode($atts) {
return wp_nav_menu(array(
'theme_location' => 'header',
'echo' => false,
));
}
add_shortcode('nav', 'menu_shortcode');
文档:
- https://developer.wordpress.org/reference/functions/wp_nav_menu/#parameters
- https://codex.wordpress.org/Function_Reference/add_shortcode
你收到你原来的问题的答案已经被更新,以解决您所描述的问题:How to make a PHP function into a short code
完美,谢谢! – Jack1991
好吧,我测试过它在我自己的WordPress安装使用下面的代码:
function menu_shortcode() {
return wp_nav_menu(array('theme_location' => 'header'));
}
add_shortcode('b3_add_menu', 'menu_shortcode');
我创建了一个名为页测试,并添加简码[b3_add_menu]它。这是结果:
对我来说,菜单是不是在页面的顶部显示的唯一,你能也许会告诉我,你放置你的“导航”简码?
我在页面构建器插件中使用文本/代码模块来添加短代码。我也尝试使用默认的Wordpress页面编辑器,而其他内容仍然低于由短代码生成的内容。 – Jack1991
我认为nav已被wordpress使用,请尝试将其更改为更独特的内容。 – berend
这没有什么区别我很害怕:/ – Jack1991