2012-06-13 67 views
2

我为主题定制创建了一个函数。add_menu_page中的重复标签

function create_theme_option() { 

     add_menu_page( 'Manage Options', //Page Title 

         'Theme Option', //WP Administrator Menu Title 

         'manage_options', // 

         'theme-options', //Link to a page to your Administration Area 

         'deploy_theme_options', //Function Name 

         get_template_directory_uri() . '/Plugins/Background Changer/images/icons/icon.png',//Menu Icon 

         99); 

     add_submenu_page("theme-options", "Theme Settings", "Theme Settings", 1, "theme-settings", "theme_settings"); 

     add_submenu_page("theme-options", "Manage Header", "Manage Header", 1, "manage-header", "manage_header"); 

     add_submenu_page("theme-options", "Social Media", "Social Media Links", 1, "social-media", "social_media"); 

     add_submenu_page("theme-options", "Catalog Manager", "Catalog Manager", 1, "catalog-manager", "catalog_manager"); 

    } 

,但我注意到,标签“主题选项”后,旁边有它的另一个文本显示为“主题选项”。检查下面的图片:

http://leojarina.info/stock-data/images/screenshot.jpg

我该如何解决这个问题?请帮忙!

回答

8

@Basharat相当接近。下面是我在我的插件使用更清洁的方式:

add_menu_page(
    '',      // No need to have this 
    'My Plugin',   // Menu Label 
    'manage_options', 
    'my_plugin_settings', // (*) Shared slug 
    'your_function', 
    plugins_url('myplugin/images/icon.png'), 
    81 
); 

add_submenu_page(
    'my_plugin_settings', // (*) Shared slug 
    'My Plugin Settings', // Subpage Title 
    'Settings',    // Submenu Label 
    'manage_options', 
    'my_plugin_settings', // (*) Shared slug 
    'your_function' 
); 

来源:咖啡,试验和错误;)

+0

关键是'my_plugin_settings'slug在菜单和子菜单中。和子菜单中的TWICE。 –

0

请使用以下删除菜单的子菜单中的重复条目的性能参数。

<?php 
/* Add top level menu */ 
add_menu_page(
    'MyTheme', 
    'MyTheme Menu Label', 
    'edit_themes', 
    'theme_admin',  // menu slug 
    'functions.php',  // function 
    get_bloginfo('template_directory') .'/img/favicon.png', 
    31 
); 

/* remove duplicate menu hack */ 
add_submenu_page(
    'theme_admin',  // parent slug, same as above menu slug 
    '',  // empty page title 
    '',  // empty menu title 
    'edit_themes',  // same capability as above 
    'theme_admin',  // same menu slug as parent slug 
    'functions.php',  // same function as above 
} 
?> 

这不是太干净,但afaik是隐藏重复子菜单的唯一方法。

参考: https://wordpress.stackexchange.com/questions/52675/how-to-remove-duplicate-link-from-add-menu-page

0

唯一的工作方式,我发现是设置add_menu_page $ capabilties未知的,所以如'unknown',这将隐藏页面或子菜单,但菜单仍将显示在左侧。