Функция позволяет добавить какой-либо метабокс, например на страницы редактирования записей, страниц или произвольных типов постов.
В интернете вы сможете встретить огромное количество примеров, где функцию add_meta_box()
добавляют на различнейшие хуки. Лучше всего её использовать внутри хука add_meta_boxes
. Ну и надеюсь, что вы не будете вставлять её напрямую в functions.php
🙃 В любом случае – примеры ниже.
Сейчас, когда мы говорим о метабоксах, мы подразумеваем их на тех типах записей, в которых отключен редактор Gutenberg. В самом редакторе Gutenberg метабоксы существуют лишь в качестве обратной совметимости, то есть по сути не поддерживаются. В качестве альтернативы мы должны добавлять поля в сам редактор, например в виде сайдбаров, об этом у меня есть целый видеокурс.
add_meta_box( $id, $title, $callback, $screen = null, $context = 'advanced', $priority = 'default', $callback_args = null )
id
.echo
, а не возвращать, обращаю внимание.post
или page
. С версии WordPress 4.4.0 параметр принимает массив значений, то есть например array( 'post', 'page')
.normal
, side
и advanced
, но вообще вы можете зарегистрировать и свою собственную локацию отображения метабокса функцией do_meta_boxes()
.high
, core
, default
или low
.false
, тогда метабокс по-прежнему будет отображаться в редакторе Gutenberg, но содержать ошибку о том, что он поддерживается только в классическом редакторе.true
, тогда ваш метабокс исчезнет из редактора Gutenberg.add_action( 'add_meta_boxes', 'true_meta_box' ); function true_meta_box() { add_meta_box( 'true-metabox-id', 'Мишин метабокс', 'true_meta_box_cb', array( 'post', 'page' ), // для записей и страниц 'normal', 'high' ); } function true_meta_box_cb() { // выводим контент метабокса echo '<strong>Приветик</strong>'; }
Не знаете, куда вставлять код?
В результате:
class TrueMetaBox{ function __construct() { add_action( 'add_meta_boxes', array( $this, 'add' ) ); } function add() { add_meta_box( 'true-metabox-id', 'Мишин метабокс', array( $this, 'display' ), array( 'post', 'page' ), // для записей и страниц 'normal', 'high' ); } function display() { // выводим контент метабокса echo '<strong>Приветик</strong>'; } } new TrueMetaBox();
add_action( 'add_meta_boxes', 'true_meta_box' ); function true_meta_box() { add_meta_box( 'true-metabox-id', 'Мишин метабокс', function(){ echo '<strong>Приветик</strong>'; }, array( 'post', 'page' ), // для записей и страниц 'normal', 'high' ); }
add_action( 'add_meta_boxes', 'true_meta_box' ); function true_meta_box() { add_meta_box( 'true-metabox-id', 'Мишин метабокс', 'true_meta_box_cb', array( 'post', 'page' ), // для записей и страниц 'normal', 'high', array( 'message' => 'Приветик' ) ); } function true_meta_box_cb( $post, $metabox_args ) { // выводим контент метабокса echo '<strong>' . $metabox_args[ 'args' ][ 'message' ] . '</strong>'; }
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.