wake-up-neo.net

Bildtitel, Beschriftung, Alternativtext und Beschreibung beim Hochladen von Bildern in WordPress automatisch hinzufügen

Kann mir jemand sagen, wie ich den gleichen Bildtitel in Titel, Bildunterschrift, Alternativtext und Beschreibung automatisch ausfüllen/hinzufügen kann, während ich ein beliebiges Bild in meinen WordPress-Posts hochlade.

desired screenshot

7
On Secret Hunt

Sie können sich in die Aktion 'add_attachment' von wp-includes/post.php einbinden. Zeile: 3332. (Version 4.4) Es wird die post_id übergeben und von dort aus können Sie den Dateinamen abrufen und dann das Post-Meta mit allem aktualisieren, was Sie benötigen.

Referenz entnommen aus

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 );
}
2
Webloper

added_post_meta scheint ein guter Zeitpunkt zu sein, um sich in ein neues Bild einzuklinken. Es ist nicht nur das Standard-Meta bereits festgelegt, sondern die Funktion gibt Ihnen den $post_id zusammen mit dem $meta_value, der die Metadaten der Anhänge enthält. Von dort aus können Sie alle Felder abrufen und die gewünschten festlegen.

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);
    }
}
2
jgraup

Für eine einfachere Lösung können Sie das this WordPress-Plugin verwenden, das ich vor einiger Zeit erstellt habe.

Das Plugin enthält auch einen Bulk-Updater, der die Bildattribute für Bilder aktualisiert, die sich bereits in Ihrer Medienbibliothek befinden, wenn Sie dies ebenfalls tun möchten.

1
Arun Basil Lal