web-dev-qa-db-fra.com

Est-il possible de définir une légende par défaut pour toutes les images téléchargées?

Comme le titre de cette réponse l'indique, je souhaite définir une légende par défaut pour toutes les images téléchargées dans WordPress ... Existe-t-il un moyen de procéder de la sorte?

3
Miriam de Paula

Il n'y a pas encore de documentation pour cela, mais vous pourrez probablement le connecter au filtre attachment_fields_to_save et y insérer la légende par défaut.

Du Codex :

attachment_fields_to_save
appliqué aux champs associés à une pièce jointe avant de les enregistrer dans la base de données. Appelé dans la fonction media_upload_form_handler. Arguments de la fonction de filtrage: un tableau d'attributs de publication, un tableau de champs de pièces jointes comprenant les modifications soumises à partir du formulaire

Il est défini sur wp-admin/includes/media.php :

// TESTED :)
function wpse300512_image_attachment_fields_to_save($post, $attachment) {
if ( substr($post['post_mime_type'], 0, 5) == 'image' ) {
    if ( '' === trim( $post['post_title'] ) ) {
        $post['post_title'] = preg_replace('/\.\w+$/', '', basename($post['guid']));
        $post['errors']['post_title']['errors'][] = __('Empty Title filled from filename.');
    }
    // captions are saved as the post_excerpt, so we check for it before overwriting
    if ( '' === trim( $post['post_excerpt'] ) ) {
        $post['post_excerpt'] = 'default caption';
    }
}

return $post;
}

add_filter('attachment_fields_to_save', 'wpse300512_image_attachment_fields_to_save', 10, 2);

UPDATE: J'ai réussi à le tester et il fonctionne tel quel. Il suffit de le déposer sur votre functions.php :)

3
moraleida