1

この質問は回避するために作成されたことに注意してください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を見つけましたが、それが私のケースにも当てはまるかどうかはわかりません。何をすべきか本当にわかりません。

4

1 に答える 1