attachment_fields_to_edit
Позволяет добавить произвольное поле к изображению (html код поля на странице редактирования вложения).
Этот хук только добавляет метаполе, но не сохраняет его данные. Для сохранения используйте хук attachment_fields_to_save.
Использование
add_filter( 'attachment_fields_to_edit', 'wp_kama_attachment_fields_to_edit_filter', 10, 2 ); /** * Function for `attachment_fields_to_edit` filter-hook. * * @param array $form_fields An array of attachment form fields. * @param WP_Post $post The WP_Post attachment object. * * @return array */ function wp_kama_attachment_fields_to_edit_filter( $form_fields, $post ){ // filter... return $form_fields; }
- $form_fields(массив)
- Данные полей формы вложения.
- $post(WP_Post)
- Объект записи вложения.
Примеры
#1 Добавим метаполе для изображения
// Добавим метаполе для изображения add_filter( 'attachment_fields_to_edit', 'pon_attachment_fields_to_edit', null, 2 ); function pon_attachment_fields_to_edit( $form_fields, $post ){ $form_fields['carousel_price'] = array( 'label' => 'Цена (если нужно)', 'input' => '', 'value' => get_post_meta( $post->ID, 'carousel_price', true ) ); return $form_fields; } // Сохраняем данные метаполя add_filter("attachment_fields_to_save", "pon_attachment_fields_to_save", null, 2); function pon_attachment_fields_to_save($post, $attachment) { if( isset($attachment['carousel_price']) ){ update_post_meta( $post['ID'], 'carousel_price', $attachment['carousel_price'] ); } else delete_post_meta( $post['ID'], 'carousel_price' ); return $post; }
Получим:
Список изменений
С версии 2.5.0 | Введена. |
Где вызывается хук
attachment_fields_to_edit
wp-admin/includes/media.php 1509
$form_fields = apply_filters( 'attachment_fields_to_edit', $form_fields, $post );
wp-admin/includes/media.php 1935
$form_fields = apply_filters( 'attachment_fields_to_edit', $form_fields, $post );
Где используется хук в WordPress
wp-admin/async-upload.php 87
add_filter( 'attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2 );
wp-admin/async-upload.php 97
add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 );
wp-admin/includes/media.php 2373
add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 );
wp-admin/includes/media.php 2596
<?php add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 ); ?>
wp-admin/includes/media.php 2906
<?php add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 ); ?>