【问题标题】:wordpress user_admin_menu not firingwordpress user_admin_menu没有触发
【发布时间】:2023-03-14 16:01:01
【问题描述】:

我正在尝试向我的用户管理菜单添加一个菜单项。

这是我正在使用的代码:(我已将其放在我的 functions.php 脚本中)

add_action('user_admin_menu', 'ang_profile_actions');

function ang_profile_actions() { 
    add_users_page( 'test menu', 'test menu', 'exists', 'test_menu', 'ang_parse_profile_menu');
}

但是,“user_admin_menu”似乎没有触发。我通过在函数 ang_profile_actions 中添加一个 exit() 来测试这一点,并且页面加载时不会停止。

这个设置对吗?我什至使用正确的钩子。太多了,有时很难说清楚。

当用户进入“wp-admin/profile.php”页面时,我只想在用户个人资料页面中添加菜单项。

【问题讨论】:

    标签: wordpress


    【解决方案1】:

    这是我需要时使用的:

    add_action('admin_menu', 'nb_users_submenu');
    
    function nb_users_submenu() {
    add_users_page('Page Title', 'Menu Title', 'read', 'page-slug', 'nb_display_page');
    }
    

    您可以将读取更改为在以下位置找到的任何功能:http://codex.wordpress.org/Roles_and_Capabilities

    还要注意 nb_display_page 是我用来显示页面内容的函数。

    【讨论】:

    • 谢谢。但是,这会不会也将相同的菜单项添加到管理菜单,而不仅仅是用户管理菜单?
    • 谢谢。我对其进行了测试,它没有在常规管理员中添加菜单。我现在看到您使用了“add_users_page”功能。
    【解决方案2】:
    add_action('user_admin_menu', 'ang_profile_actions');
    

    不起作用,因为它仅在使用多站点时触发,并且仅在访问 .../wp-admin/user 时触发。看看里面 .../wp-admin/user/admin.php 有常量 WP_USER_ADMIN 的定义,它是触发'user_admin_menu'动作所必需的。如果您尝试使用单站点模式访问 .../wp-admin/user ,您将被重定向到 admin_url() 其中 .../wp-admin/user/admin.php 没有被包括在内所以恒定未定义 WP_USER_ADMIN 且操作 'user_admin_menu' 不会触发。

    【讨论】:

      猜你喜欢
      • 2015-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-16
      • 2017-08-15
      • 2020-02-06
      • 2013-05-31
      相关资源
      最近更新 更多