4

所以有以下代码,我正在尝试为 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 以防万一。

我错过了什么?

4

2 回答 2

5

第三个参数是能力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'); 
于 2013-10-11T05:11:36.393 回答
0

事实证明,我不得不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'); 
    }

?>
于 2013-10-11T00:50:27.820 回答