![](/img/trans.png)
[英]wordpress plugin -> Call to undefined function wp_get_current_user()
[英]Getting 'Call to undefined function wp_get_current_user()' error when do_action is used
請注意,創建此問題是為了避免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,但我不確定它是否也適用於我的情況,我真的不明白該怎么辦。
如果您想將參數傳遞給函數,請嘗試此操作
// Hook for adding admin menus
add_action('admin_menu', 'add_plugin_admin_page', 10, 1);
do_action('admin_menu', $plugin_name);
您正在創建的第一行操作已告訴您要掛接到WordPress函數中。 第二行是帶有參數的操作。
編輯
由於將參數添加到默認的WordPress操作掛鈎可能不明智。 讓我們嘗試以其他方式將其分開。
創建自己的鈎子
add_action( 'admin_menu', 'add_plugin_admin_page', 10, 1 );
add_action( 'plugin_admin_page', 'plugin_admin_page_arguments' );
function plugin_admin_page_arguments() {
$plugin_name = 'Hello World'; // Your argument
do_action('plugin_admin_page', $plugin_name);
}
然后您的管理頁面功能及其參數
function add_plugin_admin_page($plugin_name) {
echo $plugin_name;
}
這未經測試,但應該可以給您一個提示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.