web-dev-qa-db-fra.com

Modifier l'image en sortie dans le contenu

J'essaie d'implémenter le JAIL javascript dans mon installation WordPress. Le javascript nécessite que j'ajoute un attribut data et modifie le code HTML de sortie des images.

Je cherchais dans le codex des filtres ou des crochets qui pourraient m'aider, mais je ne trouve rien. Quelqu'un a une solution?

1
andeersg

Il est préférable d’ajouter vos données d’image personnalisées lorsque vous les insérez dans une publication à l’aide de media_send_to_editor; toutefois, cela ne sera appliqué à aucune image existante, mais uniquement à celles insérées après l’ajout de la fonction.

Pour l’appliquer au contenu existant, vous devrez utiliser preg_match sur le filtre the_content, mais cela peut ralentir considérablement votre site, il est conseillé de ne pas analyser le résultat de cette manière.

Un exemple de media_send_to_editor:

function WPSE_78285_Mime($html, $id) {

    //fetching attachment by post $id
    $attachment = get_post($id); 
    $mime_type = $attachment->post_mime_type;

    //get an valid array of images types   
    $image_exts = array( 'image/jpg', 'image/jpeg', 'image/jpe', 'image/gif', 'image/png' );

    //checking the above mime-type
    if (in_array($mime_type, $image_exts)) { 

        // the image link would be great
        $src = wp_get_attachment_url( $id );

        // enter you custom output here, you will want to probably change this
        $html = '<a href="' . $src .  '" class="your-class" data-src="/img/image1.jpg" rel="your-rel"><img src="'. $src .'" /></a>';
        return $html; // return new $html    
    }
        return $html;
}

add_filter('media_send_to_editor', 'WPSE_78285_Mime', 20, 2);
2
Wyck