Я создаю небольшой плагин для добавления атрибута «data-pin-description» к моим изображениям. Я намерен предоставить клиенту возможность добавить это описание метаданных к любому вложенному изображению от администратора и затем вывести это мета-значение в тег внешнего интерфейса, когда вложение будет добавлено в содержимое публикации. Я хочу, чтобы плагин захватил эти метаданные в соответствующее время и включил их с атрибутом и значением тега img, прежде чем он уже выведен. Конечный результат должен быть:
Мой админ-код, кажется, принимает и сохраняет введенное клиентом значение, просто найдите, однако у меня возникают проблемы с выводом этих данных. Одна проблема заключается в том, что я не смог определить, какой хук извлечет и добавить эти данные в тег в нужное время
Я пытался запрашивать сообщения вложения, но я не знаю, какое действие или фильтр подключить к
Вот как я добавляю метаданные в admin:
<?php
//exit if file is called directly
if (! defined( 'ABSPATH' ) ) {
exit;
}
/**
* Adding a custom field to Attachment Edit Fields
* @param array $form_fields
* @param WP_POST $post
* @return array
*/
//add attachment fields
function ad_add_pinterest_fields( $form_fields, $post ) {
$field_value = get_post_meta( $post->ID, 'pin-description', true );
$form_fields['pin-description'] = array(
'value' => $field_value ? esc_textarea($field_value) : '',
'label' => __( 'Pin Description' ),
'helps' => __( 'Add a short description for Pinterest SEO' ),
'input' => 'textarea'
);
return $form_fields;
}
add_filter( 'attachment_fields_to_edit', 'ad_add_pinterest_fields', null, 2 );
//save attachment fields
function ad_save_pinterest_fields( $attachment_id ) {
if ( isset( $_REQUEST['attachments'][$attachment_id]['pin-description'] ) ) {
$pinDescription = sanitize_text_field( $_REQUEST['attachments'][$attachment_id]['pin-description'] );
update_post_meta( $attachment_id, 'pin-description', $pinDescription );
}
}
add_action( 'edit_attachment', 'ad_save_pinterest_fields' );
?>
Я ожидаю получить post_meta каждого изображения вложения для данного сообщения, но получаю только ошибки