请注意,创建此问题是为了避免global $plugin_name;
我正在写一个 WordPress (WP 3.6) 插件,我得到了
wp_get_current_user() in /var/www/wordpress/wp-includes/capabilities.php on line 1281, referer: http://10.1.1.6/wp-admin/admin.php?page=mhomepage/mhomepage_admin_menu.php
如果我使用此代码
$plugin_name='mhomepage';
// Hook for adding admin menus
add_action('admin_menu', 'add_plugin_admin_page', 10, 1);
do_action('admin_menu', $plugin_name.'/mhomepage_admin_menu.php');
// add_action('admin_menu', 'add_plugin_admin_page');
function add_plugin_admin_page($plugin_name) {
// global $plugin_name;
//must check that the user has the required capability
if (!current_user_can('manage_options'))
{
wp_die( __('You do not have sufficient permissions to access this page.') );
}
add_menu_page( 'mHomePage', 'mHomePage', 'manage_options', 'mhomepage/mhomepage_admin_menu.php', '', '', 6 );
// add_menu_page( 'mHomePage', 'mHomePage', 'manage_options', $plugin_name, '', '', 6 );
}
mhomepage_admin_menu.php
看起来像的地方
<?php
echo "Plugin menu page";
?>
但是如果我add_action('admin_menu', 'add_plugin_admin_page');
在上面的代码中使用而不是
// add_action('admin_menu', 'add_plugin_admin_page', 10, 1);
// do_action('admin_menu', $plugin_name.'/mhomepage_admin_menu.php');
一切正常吗?有人可以解释发生了什么以及为什么会发生以及解决方案是什么?我想使用 do_action 将参数传递给 add_plugin_admin_page 函数。
我找到了这个答案https://stackoverflow.com/a/6127607/250422但我不确定它是否也适用于我的情况,我真的不明白我应该做什么。