2016-02-05 72 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

非常感謝!

回答