ADD_MEDIA_PAGE函数未创建子菜单

时间:2014-05-16 作者:richbai90

我现在正在测试以下插件。

/*
Plugin Name: Menu Test
Plugin URI: http://codex.wordpress.org/Adding_Administration_Menus
Description: Menu Test
Author: Codex authors
Author URI: http://example.com
*/


include(\'./customFields.php\');

// Hook for adding admin menus
add_action(\'admin_menu\', array(\'customFields\', \'buildOptions\'));

// action function for above hook
以及customFields中的类。php

class customFields {

    private function createMenu () {
        add_media_page(\'Custom Media Options\', \'Add Fields to Media\',     \'manage_options\', \'custom_media_options\', $this::createMenuOptionsPage());

    }

    private function createMenuOptionsPage () {
        echo \'test\';

    }

    public function buildOptions () {
        $this::createMenu();
    }

}  
我看不出我的语法有任何错误,但媒体下的子菜单从未出现。谁能帮帮我吗?

1 个回复
SO网友:Saikat

无论何时在add\\u action函数中使用类方法,然后在array参数中,都必须将该类的实例作为第一个值传递,然后将方法名称作为数组的第二个值传递。在代码中,实际上没有传递任何实例。这就是为什么它不起作用。

尝试以下操作:

class customFields {

    private function createMenu () {
        add_media_page(\'Custom Media Options\', \'Add Fields to Media\',     \'manage_options\', \'custom_media_options\', $this->createMenuOptionsPage());

    }

    private function createMenuOptionsPage () {
        echo \'test\';

    }

    public function buildOptions () {
        $this->createMenu();
    }

}  

$customFields = new customFields();
add_action(\'admin_menu\', array($customFields, \'buildOptions\'));

结束