Ajouter un paramètre d'affichage des pièces jointes personnalisé pour les images

11

J'ai fait beaucoup de recherches et je n'ai pas encore trouvé de solution. Pouvez-vous ajouter une option personnalisée à la Attachment Display Settings (partie de la boîte de dialogue Insert Media dans l’éditeur de publication)?

Ce que je recherche, c’est la possibilité d’ajouter une ancre avec une classe autour de toutes les images des articles.

    
posée Doidgey 11.01.2014 - 21:26

2 réponses

1

Ceci ajoutera un champ dans l'écran d'édition de pièce jointe pour appliquer une classe à la balise img.

function IMGattachment_fields($form_fields, $post) {
    $form_fields["imageClass"]["label"] = __("Image Class");
    $form_fields["imageClass"]["value"] = get_post_meta($post->ID, "_imageClass", true);
    return $form_fields;
}
add_filter("attachment_fields_to_edit", "IMGattachment_fields", null, 2);
function my_image_attachment_fields_save($post, $attachment) {
    if ( isset($attachment['imageClass']) )
    update_post_meta($post['ID'], '_imageClass', $attachment['imageClass']);
    return $post;
}
add_filter("attachment_fields_to_save", "my_image_attachment_fields_save", null, 2);
    
réponse donnée rspny 25.01.2014 - 01:16
0

Vous devez simplement ajouter ceci au fichier functions.php de votre thème:

/**
* Attach a class to linked images' parent anchors
* e.g. a img => a.img img
*/
function give_linked_images_class($html, $id, $caption, $title, $align, $url, $size, $alt = '' ) {
    $classes = 'img'; // separated by spaces, e.g. 'img image-link'

    // check if there are already classes assigned to the anchor
    if ( preg_match('/<a.*? class=".*?">/', $html) ) {
    $html = preg_replace('/(<a.*? class=".*?)(".*?>)/', '$1 ' . $classes . '$2', $html);
    } else {
     $html = preg_replace('/(<a.*?)>/', '$1 class="' . $classes . '" >', $html);
    }
    return $html;
}

add_filter('image_send_to_editor','give_linked_images_class',10,8);
    
réponse donnée jim.duck 26.08.2015 - 11:20

Lire d'autres questions sur les étiquettes