Intereting Posts
Копирование пользовательских метазначений из существующей почты в дублирующийся пост Как установить базовый url для виджета php Как я могу получить внешнее изображение нестандартного размера сообщения Создать нового пользователя без пароля Страница блога Ошибка сервера 500 с циклом post post в файле query.php Показывать название категории на выбранном изображении в выдержке wordpress получить продукт woocommerce с пользовательской таксономией Получить текущую категорию и поместить ее в короткий код Нужна помощь с функциями PHP Почему этот оператор IF не работает? Как скрыть, что на сервере существует определенный каталог, отличный от WordPress? отображение другого шаблона на основе типа сообщения Неопределенный индекс: b в /path/file.php, относящийся к параметрам querystring Как показать список сообщений на основе таксономического термина? показать изображение автора в сообщениях

Добавление пользовательских метабокс в пользовательские страницы

Я хочу иметь возможность добавлять метабокс на новую страницу подменю, которую я создал. У меня есть следующий базовый код, который, как я надеялся, будет работать, но, похоже, это не так:

add_action("init", "my_register_post_types"); function my_register_post_types() { register_post_type("my-cpt", array( "label" => "My CPT", "public" => true )); } add_action("admin_menu", "my_add_menu_items"); function my_add_menu_items() { add_submenu_page("edit.php?post_type=my-cpt", "Test Page", "Test Page", "edit_posts", "my-cpt-slug", "display_my_test_page"); //return value from this is my-cpt_page_my-cpt-slug } function display_my_test_page() { do_meta_boxes("my-cpt", "normal", null); } add_action("add_meta_boxes", "my_add_metaboxes"); function my_add_metaboxes() { add_meta_box("my-cpt-metabox", "My CPT Metabox", "display_my_metabox", "my-cpt_page_my-cpt-slug", "normal", "core"); } function display_my_metabox() { echo "Hello"; } 

Согласно http://shibashake.com/wordpress-theme/standard-wordpress-metabox , я должен использовать возвращаемое значение add_submenu_page, которое будет использоваться в функции add_meta_box вместо пула CPT.

Я надеялся, что метабокс появится на новой «тестовой странице», но без радости. Есть идеи? Я что-то упускаю?

Solutions Collecting From Web of "Добавление пользовательских метабокс в пользовательские страницы"

add_meta_boxes загружает загрузку в edit-form-advanced.php . Ваша пользовательская плагиновая страница «test» не использует этот файл. Вместо этого вам нужно зацепиться за «плагины админа страницы» .

Во-вторых, третий параметр add_meta_box – это просто add_meta_box CPT, а не тот, который у вас есть.

Вот что вам нужно изменить:

 add_action("load-my-cpt_page_my-cpt-slug", "my_add_metaboxes"); function my_add_metaboxes() { add_meta_box("my-cpt-metabox", "My CPT Metabox", "display_my_metabox", "my-cpt", "normal", "core"); }