Функция add_media_page не создает подменю

У меня есть следующий плагин, который я сейчас тестирую.

/* 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(); } } 

Я не вижу ничего плохого в моем синтаксисе, но подменю под медиа никогда не появляется. Может кто-то мне помочь, пожалуйста?

Всякий раз, когда вы будете использовать метод класса в функции add_action, тогда в параметре массива вы должны передать экземпляр этого класса в качестве первого значения, а затем имя метода как второе значение массива. В вашем коде вы фактически не проходили ни одного экземпляра. И поэтому это не сработало.

Попробуй это:

 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'));