2016-02-05 73 views
0

我有演出菜单简码:添加简码在TinyMCE用于显示菜单下拉

//menu categories shortcode 
function menu_categories_shortcode($atts, $content = null){ 
    extract(shortcode_atts(array(
     'menu' => '' 
    ), $atts)); 
    ob_start(); 
     wp_nav_menu(array(
      'menu' => $menu, 
      'container'  => 'ul', 
      'container_class' => 'sidebar-categories', 
      'items_wrap'  => '%3$s', 
      'depth' => 1 
     )); 
    $content = ob_get_contents(); 
    ob_end_clean(); 
return $content; 
} 
add_shortcode('menu-categories', 'menu_categories_shortcode'); 

现在,我想添加菜单简码的简码按钮,TinyMCE的客户端可以选择他们想要显示的菜单。例如:在主页上,客户端要显示的菜单菜单名称为Menu 1,因此简码将为:[menu-categories menu="Menu 1"] 当客户端点击菜单简码按钮时,会弹出所有菜单的下拉列表供客户端选择菜单想。

Add shortcode button

这是我的js调用弹出菜单:

(function() { 
    tinymce.create('tinymce.plugins.menuPlugin', { 
     init: function(ed, url) { 
      // Register commands 
      ed.addCommand('mcebutton', function() { 
       ed.windowManager.open({ 
        file: url + '/menu_popup.php', 
        width: 220 + parseInt(ed.getLang('button.delta_width', 0)), 
        height: 240 + parseInt(ed.getLang('button.delta_height', 0)), 
        inline: 1 
       }, { 
        plugin_url: url 
       }); 
      }); 
      // Register buttons 
      ed.addButton('menu_button', { 
       title: 'Choose Menu', 
       cmd: 'mcebutton', 
       image: url + '/icon.gif' 
      }); 
     }, 
    }); 
    tinymce.PluginManager.add('menu_button', tinymce.plugins.buttonPlugin); 
})(); 

menu_popup.php所的问题,如何我得到的所有菜单? 我menu_popup.php文件:

<form action="/" method="get" accept-charset="utf-8"> 
    <div> 
     <label for="button-url">Choose Menu</label> 
     <?php $menus = get_registered_nav_menus(); 
        if($menus) : ?> 
     <select id="button-url"> 
      <?php 
       foreach ($menus as $key => $menu) : ?> 
       <option value="<?php echo $menu; ?>"><?php echo $menu; ?></option>   <?php endforeach; ?> 
     </select> 
     <?php endif; ?> 
    </div> 
    <div> 
     <a href="javascript:ButtonDialog.insert(ButtonDialog.local_ed)" id="insert" style="display: block; line-height: 24px;">Insert</a> 
    </div> 
</form> 

错误,我有:

Error

非常感谢!

回答