Intereting Posts
идентификатор сообщения не отображается Запросить последние обновленные сообщения (сообщения обновлены за последние 24 часа) Добавление сообщений в меню (Nav) программно? Сделайте поиск запроса запроса WP точно в соответствии с поисковым термином Нужен совет по настройке темы и темам для детей Как отобразить таксономический термин custom meta (используя wp_get_object_terms?)? Как иметь простой HTML-каталог в WP-сайте Отображать все значения настраиваемого поля, созданного с помощью ACF на странице Как отменить сценарий отмены регистрации и использовать локальные версии? Как удалить определенные теги HTML из RSS-канала? Как я могу использовать пользовательское имя AccessFileName? Узнайте, какой пользователь создал категорию или тег? Штрих-код Google Map для пользовательской таксономии / типа сообщений Как я могу изменить ссылку меню, когда содержимое страницы пуст? Управление имитатором темы

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

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

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"); }