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 1526
$form_fields = apply_filters( 'attachment_fields_to_edit', $form_fields, $post );
wp-admin/includes/media.php 1954
$form_fields = apply_filters( 'attachment_fields_to_edit', $form_fields, $post );
Где используется хук в WordPress
wp-admin/async-upload.php 86
add_filter( 'attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2 );
wp-admin/async-upload.php 96
add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 );
wp-admin/includes/media.php 2397
add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 );
wp-admin/includes/media.php 2620
<?php add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 ); ?>
wp-admin/includes/media.php 2929
<?php add_filter( 'attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2 ); ?>
