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 dans la Attachment Display Settings(partie de la Insert Mediaboîte de dialogue de l'éditeur de publication)?

Ce que je recherche, c'est la possibilité d'ajouter une ancre avec une classe autour de toutes les images dans les messages.


advancedcustomfields.com peut le faire, lorsque vous créez un nouveau groupe de champs pour votre champ supplémentaire, choisissez l'emplacement de la pièce jointe et il affichera le champ supplémentaire dans la boîte de dialogue Insérer un média et sur la page de modification de la pièce jointe également
passatgt

Réponses:


1

Cela ajoutera un champ dans l'écran d'édition des pièces jointes 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);

0

Il vous suffit d'ajouter ceci au functions.phpfichier 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);
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.