我现在正在测试以下插件。
/*
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();
}
}
我看不出我的语法有任何错误,但媒体下的子菜单从未出现。谁能帮帮我吗?
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\'));