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.

Doidgey
la source
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);
rspny
la source
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);
jim.duck
la source