add_options_page不会向管理页面添加选项


add_options_page not adding option to admin page

所以有以下代码,我正在尝试为WordPress创建自定义插件:

<?php
/*
    Plugin Name: Dump-It Scheduler
    Plugin URI: mycompany.com
    Description: my description
    Version: 1.0
    Author: Blaine 
    Author URI: myuri.net
    License: 
*/
function scheduler_admin_actions() {
    add_options_page('Dump-It Scheduling', 'Dump-It Schedule', 'Administrator', 'Dump-It_Master_Schedule'); 
}
add_action('admin_menu', 'scheduler_admin_actions'); 
?>

但是,我在应用程序的管理部分看不到任何添加链接。我已经激活了该插件,但我希望看到此插件的选项。据我了解,我应该看到一个添加到管理面板的链接。

还要补充一点,我没有任何错误(我正在使用调试器插件)。不知道这是怎么回事...

我正在使用WordPress 3.6.1以防万一。

我错过了什么?

第三个参数是功能,在您的情况下必须manage_options或类似。它甚至可以是一个角色(虽然不推荐),但它必须是小写的,而不是Administrator .

您缺少最后一个参数,即回调。

# http://codex.wordpress.org/Function_Reference/add_options_page
add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function);

顺序没关系,这有效:

function scheduler_admin_actions() {
    add_options_page(
        'Dump-It Scheduling', 
        'Dump-It Schedule', 
        'manage_options', 
        'Dump-It_Master_Schedule', 
        'my_callback'
    ); 
}
function my_callback()
{
    echo 'hello world';
}
add_action('admin_menu', 'scheduler_admin_actions'); 

事实证明,我不得不像这样将add_action移动到函数上方:

  <?php
    /*
        Plugin Name: Dump-It Scheduler
        Plugin URI: mycompany.com
        Description: my description
        Version: 1.0
        Author: Blaine 
        Author URI: myuri.net
        License: 
    */
    //moved this call above the function definition
    add_action('admin_menu', 'scheduler_admin_actions'); 
    function scheduler_admin_actions()
    {
        add_options_page('Dump-It Scheduling', 'Dump-It Schedule', 'Administrator', 'Dump-It_Master_Schedule'); 
    }
?>