Как вывести вложение пост мета на веб-интерфейсе в WordPress - PullRequest
0 голосов
/ 27 марта 2019

Я создаю небольшой плагин для добавления атрибута «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 каждого изображения вложения для данного сообщения, но получаю только ошибки

1 Ответ

0 голосов
/ 24 апреля 2019

, чтобы решить эту проблему, я подключился к image_send_to_editor, чтобы изменить изображение html до , чтобы оно было отправлено в редактор. таким образом, с HTML-изображением в редакторе и правильным отображением моего атрибута и значения, когда я нажимаю «обновить сообщение», HTML-файл сохраняется в базе данных с этими частями данных. когда сообщение просматривается во внешнем интерфейсе, выходные данные из базы данных также корректно отражаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...