在div PHP之外返回的短代码函数

Emm*_*ris 4 php wordpress shortcode

我在Wordpress中为自定义菜单创建了一个短代码.

问题是我的$菜单显示在side-nav和side-nav-menu div的上方和外部.

我试过回复/返回它而不将其存储在$ var中我得到了同样的问题.

我错过了什么吗?

function custom_menu() {
   $menu = wp_nav_menu( array( 'theme_location' => 'product-menu' ) );
   $var = '<div class="side-nav">
   <div class="side-nav-menu product-    nav">
   <p>Products</p>' . $menu . '
   </div></div>';
      return $var;
 }
 add_shortcode("custom", "custom_menu");
Run Code Online (Sandbox Code Playgroud)

Pie*_*sen 5

wp_nav_menu()将其输出回显到屏幕,这就是导致短代码问题的原因.如您所知,回显短代码中的任何内容都会产生意外输出.wp_nav_menu()有一个被调用的参数echo,设置为true bu default.你可以添加

'echo' => false, 
Run Code Online (Sandbox Code Playgroud)

到您的wp_nav_menu 参数数组,这应该解决您的问题