将新页面链接到插件中

时间:2018-10-09 作者:Martín Arbol

我正在开发一个新插件,我添加了一个新的管理页面菜单,其中包含:

function ca_admin_link()
{
add_menu_page(
     \'Checklist Artistas\', 
     \'Checklist Artistas\', 
\'checklist-artistas/includes/ca-checklist-acp-page.php\' 
     );
}
add_action( \'admin_menu\', \'ca_admin_link\' );
一切正常,显示一个项目菜单,我可以访问ca检查表acp页面。但是在这个页面上,我想链接到另一个页面(ca edit checklist acp page.php)到同一个目录中。

使用

admin_url(\'admin.php?page=checklist-artistas/includes/ca_edit_checklist_acp-page.php\')
但当我尝试访问该新页面时,我得到“您没有访问该页面的权限”

如何授予ca\\u edit\\u checklist\\u acp-page的管理员权限。php?

非常感谢。

2 个回复
SO网友:Martín Arbol

This work :)

function ca_admin_link()
{
     // My code goes here
     add_menu_page(
     \'Checklist Artistas\', // Title of the page
     \'Checklist Artistas\', // Text to show on the menu link
     \'manage_options\', // Capability requirement to see the link
     \'checklist-artistas/includes/ca-checklist-acp-page.php\' // The \'slug\' - file to display when clicking the link
     );

    // This is the first page that is displayed when the menu is clicked
    add_submenu_page(
      null, 
      \'Checklist Artistas\',
      \'Checklist Artistas\', 
      \'manage_options\', 
      \'ca_edit_checklist_acp_page.php\', 
      \'ca_details_page_callback\'
     );

}

add_action( \'admin_menu\', \'ca_admin_link\' );

function ca_details_page_callback() {
    echo "Hola";
}
SO网友:Jacob Peattie

您错误地使用了“slug”参数。这不是为菜单页加载哪个文件。add_menu_page() 不加载文件,它加载回调函数(第5个参数)。要显示的任何代码都需要进入该回调函数。

所以slug不应该是文件名,它应该是唯一的ID,比如checklist-artistas, 没有.php. 请注意以下内容the documentation (重点矿山):

要引用此菜单的slug名称。对于此菜单页和only include lowercase alphanumeric, dashes, and underscores 要与sanitize\\u key()兼容的字符。

./, 您已将其作为文件名的一部分包含在slug中,但它不允许出现在slug中。

你在错误的地方使用了这个论点。第三个参数是用户需要查看菜单页的功能。slug应该是第四个参数。

您的代码应该更像这样:

function ca_admin_link()
{
    add_menu_page(
        \'Checklist Artistas\', 
        \'Checklist Artistas\',
        \'manage_options\', // Capability required to view
        \'checklist-artistas\', // Slug
        \'ca_menu_page\' // Callback function
    );
}
add_action( \'admin_menu\', \'ca_admin_link\' );

function ca_menu_page() {
    // Output page code here.
}
然后,您可以使用链接到该页面

admin_url( \'admin.php?page=checklist-artistas\' );

结束

相关推荐

Admin Theme customization

我遵循wordpress codex网站上关于通过插件创建管理主题的说明。我激活了插件,但我的样式表没有包含在<head>.. 这是我的代码:add_action( \'admin_init\', \'kd_plugin_admin_init\' ); add_action( \'admin_menu\', \'kd_plugin_admin_menu\' ); function kd_plugin_admin_init() { /* Register