Автоматическое добавление заголовка изображения, надписи, Alt текста, описания при загрузке изображений в WordPress

Может ли кто-нибудь сказать мне, как автоматически заполнять /добавлять одинаковое название изображения в заголовке, заголовке, тексте и описании при загрузке любого изображения в сообщениях WordPress.

желаемый снимок экрана

7 голосов | спросил On Secret Hunt 9 MonEurope/Moscow2013-12-09T08:05:20+04:00Europe/Moscow12bEurope/MoscowMon, 09 Dec 2013 08:05:20 +0400 2013, 08:05:20

3 ответа


2

added_post_meta кажется подходящим временем для подключения к новому изображению. Метатет по умолчанию уже не установлен, но функция дает вам $post_id вместе с $meta_value, который содержит метаданные вложения. Оттуда вы можете получить все поля и установить те, которые вы хотите.

add_action('added_post_meta', 'wpse_20151219_after_post_meta', 10, 4);

function wpse_20151219_after_post_meta($meta_id, $post_id, $meta_key, $meta_value) {

    // _wp_attachment_metadata added
    if($meta_key === '_wp_attachment_metadata') {

        // ----------------------------------------------------------------------
        // POST
        // ----------------------------------------------------------------------

        // Change basic fields on attachment post
        wp_update_post(array(
                           'ID'           => $post_id,
                           'post_title'   => "This is a TITLE for $post_id",
                           'post_content' => "This is the DESCRIPTION for $post_id",
                           'post_excerpt' => "This is the CAPTION for $post_id",
                       ));

        // ----------------------------------------------------------------------
        // POST META
        // ----------------------------------------------------------------------

        // Change ALT Text
        update_post_meta($post_id, '_wp_attachment_image_alt', "This is the ALT Text for $post_id");

        // Add Custom Field
        update_post_meta($post_id, '_wpse_20121219_my_custom_meta', 'MyCustomMetaValue');

        // ----------------------------------------------------------------------
        // POST META ( ATTACHMENT METADATA )
        // ----------------------------------------------------------------------

        // Change Image Metadata
        $meta_value[ 'image_meta' ] = array_merge($meta_value[ 'image_meta' ], array(
            'credit'    => 'https://black-buddha.com',
            'camera'    => 'The Best Camera EVER!',
            'copyright' => date('Y'),
            'title'     => "This is a META TITLE for $post_id",
            'caption'   => "This is a META CAPTION for $post_id",
        ));

        // Update The Image Metadata
        wp_update_attachment_metadata($post_id, $meta_value);

        // _wp_attached_file
        // _wp_attachment_metadata (serialized)
        // _wp_attachment_image_alt
        // _wpse_20121219_my_custom_meta

        $attachment_meta = get_post_meta($post_id);

        // width
        // height
        // file
        // sizes
        // image_meta
        //      aperture
        //      credit
        //      camera
        //      caption
        //      created_timestamp
        //      copyright
        //      focal_length
        //      iso
        //      shutter_speed
        //      title
        //      orientation
        //      title
        //      keywords

        $attachment_metadata = wp_get_attachment_metadata($post_id);
    }
}
ответил jgraup 19 SatEurope/Moscow2015-12-19T20:53:44+03:00Europe/Moscow12bEurope/MoscowSat, 19 Dec 2015 20:53:44 +0300 2015, 20:53:44
1
  

Вы можете подключиться к действию add_attachment из строки wp-includes /post.php: 3332. (версия 4.4)   Он передается в post_id, и оттуда вы можете получить имя файла, а затем обновить мета-сообщение со всем, что вам нужно.

Ссылка взята из

add_action( 'add_attachment', 'wpse_125805_add_image_meta_data' );

function wpse_125805_add_image_meta_data( $attachment_ID ) {

    $filename   =   $_REQUEST['name']; // or get_post by ID
    $withoutExt =   preg_replace('/\\.[^.\\s]{3,4}$/', '', $filename);
    $withoutExt =   str_replace(array('-','_'), ' ', $withoutExt);

    $my_post = array(
        'ID'           => $attachment_ID,
        'post_excerpt' => $withoutExt,  // caption
        'post_content' => $withoutExt,  // description
    );
    wp_update_post( $my_post );

    // update alt text for post
    update_post_meta($attachment_ID, '_wp_attachment_image_alt', $withoutExt );
}
ответил Webloper 19 SatEurope/Moscow2015-12-19T20:15:52+03:00Europe/Moscow12bEurope/MoscowSat, 19 Dec 2015 20:15:52 +0300 2015, 20:15:52
1

Для более простого решения вы можете использовать этот плагин WordPress, который я сделал некоторое время назад.

Плагин поставляется с массовым программным обеспечением, которое обновит атрибуты изображения для изображений уже в медиатеке, если вы хотите это сделать.

ответил Arun Basil Lal 16 PM00000090000003831 2017, 21:37:38

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132