add_meta_boxes
Позволяет зарегистрировать метаблок для любого типа записи. Срабатывает после того, как все встроенные метаблоки были добавлены.
Получает 2 параметра: $post_type, $post.
Так же есть аналогичный хук add_meta_boxes_{post_type} — срабатывает только на странице редактирования записи типа {post_type}
, т.е. можно сразу указать тип записи на котором будет срабатывать хук. Так как тип записи указывается заранее, хук получает всего один параметр: $post.
Использование
add_action( 'add_meta_boxes', 'wp_kama_add_meta_boxes_action', 10, 2 ); /** * Function for `add_meta_boxes` action-hook. * * @param string $post_type Post type. * @param WP_Post $post Post object. * * @return void */ function wp_kama_add_meta_boxes_action( $post_type, $post ){ // action... }
- $post_type(строка)
- Название типа записи, на странице редактирования которого вызывается хук.
- $post(WP_Post)
- Объект записи: объект WP_Post.
Примеры
#1 Добавим мета блок на страницу редактирования записи типа post
add_action( 'add_meta_boxes', 'adding_custom_meta_boxes', 10, 2 ); function adding_custom_meta_boxes( $post_type, $post ) { add_meta_box( 'my-meta-box', 'Мой метаблок', 'render_my_meta_box', 'post', 'normal', 'default' ); } function render_my_meta_box(){ echo 'HTML метаблока'; }
#2 Использование аналогичного хука: add_meta_boxes_{post_type}
Этот код делает тоже самое что и первый пример. Только здесь тип записи указывается сразу в названии хука.
add_action( 'add_meta_boxes_'.'post', 'adding_custom_meta_boxes' ); function adding_custom_meta_boxes( $post ) { add_meta_box( 'my-meta-box', 'Мой метаблок', 'render_my_meta_box', 'post', 'normal', 'default' ); } function render_my_meta_box(){ echo 'HTML метаблока'; }
Список изменений
С версии 3.0.0 | Введена. |
Где вызывается хук
add_meta_boxes
wp-admin/includes/meta-boxes.php 1716
do_action( 'add_meta_boxes', $post_type, $post );
wp-admin/edit-form-comment.php 257
do_action( 'add_meta_boxes', 'comment', $comment );
wp-admin/edit-link-form.php 37
do_action( 'add_meta_boxes', 'link', $link );