插件子菜单和页面的问题

时间:2017-12-12 作者:CarlLikesBowling

由于某种原因,我制作的插件子页面无法显示或运行。插件激活并显示顶级菜单,但不显示子菜单。有人帮忙吗?代码如下:

<?php

function new_menu(){
    add_menu_page($page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position );
    }
    add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function);
}
add_action(\'admin_menu\', \'new_menu\');
function test_sub_menu(){
$parent_slug = \'new-menu\';
$page_title = \'Sub menu\';
$menu_title = \'Sub menu\';
$capability = \'edit_pages\';
$menu_slug  = \'new-menu\';

}
function new_menu_page(){
    ?>
  <h1>Content goes here.</h1>

<?php
}
function test_sub_menu_page(){
    ?>
  <h1>Sub menu page content goes here.</h1>

    <?php
    }

1 个回复
SO网友:David Sword

您的代码有语法错误new_menu(). 你的test_sub_menu() 函数具有中使用的所有变量new_menu() - 但它们不是全球性的,也不是从new_menu(), 因此,它们什么都不做,函数什么都不做,只返回未定义的错误。

$parent_slug = \'new-menu\'; 相反,对于子页面,应该是您希望它位于下面的页面。在“页面”下,你会希望鼻涕虫edit.php?post_type=page.

以下内容将完成您的目标:

add_action(\'admin_menu\', function () {
    $parent_slug = \'edit.php?post_type=page\'; // "Pages"
    $page_title = \'My Plugin Submenu Page\';
    $menu_title = \'My Plugin Submenu Page\';
    $capability = \'edit_pages\';
    $menu_slug  = \'myplugin-submenu-page\';
    $page = \'myplugin_submenu_page\';

    add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $page);
});
function myplugin_submenu_page(){
    echo "<h1>Sub menu page content goes here.</h1>";
}
所有文档和示例都位于add_submenu_page()

如果你想找到$parent_slug 在上述操作功能的开头,您可以看到Wordpress的管理菜单和子菜单,如:

global $menu, $submenu;

echo "<pre>MENU: \\n".print_r($menu,true)."</pre>";
echo "<pre>SUB-MENU: \\n".print_r($submenu,true)."</pre>";
die;
在那里,您可以找到当前导航的所有信息,以便您可以点击它。

结束

相关推荐

Use menus with anchors

我有一个CPT归档页面,我想创建一个导航菜单,该菜单将跳转到表单中的锚定<a name=\"post-slug\" http=\"{the permalink goes here}>The CPT Title</a>我已经能够在模板文件中创建锚定,所以这不是问题对于页面顶部的链接本身,我可以手动创建它们,也可以使用WordPress菜单系统中的自定义链接。。。。但是有很多,所以我宁愿尝试在WordPress菜单系统中创建一个常规菜单。问题是,我需要以某种方式调整它的输出,以更改常规