it-swarm.com.de

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