2013-08-23 4 views
4

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

У моего плагина есть «Options Page» в администраторе WordPress. Я хотел бы показать обменные пункты на этой самой странице.

Возможно ли это? Если да, как это может быть достигнуто?

В документации add_meta_box я видел, что одно из возможных значений для параметра $post_type: dashboard, однако это нигде не документировано. Я предполагаю, что это покажет метабокс на WordPress Dashboard (главный экран администратора при входе в систему), но это не то, что мне нужно или нужно.

Edit:

Этот вопрос о OptionTree метабоксы, который использует стандартный WordPress метабоксы. Возможно, есть лучший способ сделать это, используя OptionTree по-другому или изменив OptionTree? Пожалуйста, смотрите этот родственный вопрос:How to have more than one "Theme Options" page with OptionTree?

+0

Проверьте [это] (http://wordpress.stackexchange.com/q/57092/12615). – brasofilo

+0

@brasofilo Спасибо за ссылку! Но используя этот метод, я не уверен, как мне сохранить настройки метабокса, а также какой идентификатор сообщения он будет прикреплен? Как я могу восстановить «мета-сообщение» без идентификатора, используя 'get_post_meta()'? Благодаря! – Community

+0

@usernotfound проверить мой ответ ниже, и дайте мне знать об этом –

ответ

2

, если я понимаю правильно, то вы можете сделать это, следуя

Вот Demo plugin, который может помочь вам получить работу.

Этого WordPress плагин показывает, как вы можете создать свой собственный плагин страницы с помощью WordPress при условии перетаскиваемых метабоксов, требует WordPress 2.7 версии, поддерживает WordPress 2.8 изменило бокс расположение двигатель

+0

@ Jothi Kannan благодарит вас за ваш ответ. Я сделал именно то, что делает этот демо-плагин, который является add_meta_box() и do_meta_boxes(), но он не работает. По какой-то причине вызов do_meta_boxes() никогда не будет работать, и я считаю, что это потому, что ему не хватает ** post ID **! Конечно, если вы проверите документацию WordPress, вы увидите, что функция обратного вызова для add_meta_box() получает идентификатор сообщения в первом параметре. Я не понимаю, что будет передано на «странице плагина», у которой нет идентификатора сообщения ... Я считаю, что это основная проблема. – Community

+0

Вместо 'post_ID' вы должны передать' $ this-> pagehook', он должен работать на страницах администратора. –

+0

. Посмотрите в файл плагина по строке 60. –

0

Никогда не пробовало, но только идея. В вашей странице настроек плагинов url передает другой параметр say post-type и предоставляет любое новое имя типа сообщения. Затем используйте это значение параметра в функции add_meta_box() $ post_type = $ _GET ['post_type'].

Смежные вопросы