add_meta_boxes
Это хук WordPress - 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.8.0. | Введена. |
Где вызывается хук
add_meta_boxes
woocommerce/src/Internal/Admin/Orders/Edit.php 165
do_action( 'add_meta_boxes', $this->screen_id, $this->order );
Где используется хук в WooCommerce
woocommerce/includes/admin/class-wc-admin-meta-boxes.php 45
add_action( 'add_meta_boxes', array( $this, 'remove_meta_boxes' ), 10 );
woocommerce/includes/admin/class-wc-admin-meta-boxes.php 46
add_action( 'add_meta_boxes', array( $this, 'rename_meta_boxes' ), 20 );
woocommerce/includes/admin/class-wc-admin-meta-boxes.php 47
add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ), 30 );
woocommerce/includes/admin/class-wc-admin-meta-boxes.php 48
add_action( 'add_meta_boxes', array( $this, 'add_product_boxes_sort_order' ), 40 );
woocommerce/src/Internal/Admin/ShippingLabelBanner.php 29
add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ), 6, 2 );