Je fais un thème Wordpress et je veux changer l'image par défaut html. Par exemple, si vous téléchargez une image à l'aide du programme de téléchargement Wordpress, le code HTML suivant est généré pour vos images.
<a href="image_url_goes_here">
<img class="aligncenter size-full wp-image-100" src="your_src"/>
</a>
Je veux changer quelque chose comme ça
<div class="image-container">
<img class="aligncenter size-full wp-image-100" src="your_src"/>
</div>
Cela fera:
<?php
/*
* This filter only works with images, for all kind of media check: media_send_to_editor
* The priority is set to 20 and it takes 8 arguments
*/
add_filter('image_send_to_editor', 'wpse_53577_img_wrapper', 20, 8);
// We are only working with the $html argument, but you can play with all of them
function wpse_53577_img_wrapper($html, $id, $caption, $title, $align, $url, $size, $alt)
{
// If Link URL is set to "File URL" or "Attachment Post URL", the anchor tag gets replaced with the div tag
$new_html = preg_replace("/\<a(.*)\>(.*)\<\/a\>/iU", "<div class=\"image-container\">$2</div>", $html);
// If no replacement was done (Link URL == None), wrap the image tag with the div tag
$html = ($new_html == $html) ? '<div class="image-container">'. $html . '</div>' : $new_html;
return $html;
}
Instantané de référence :
Le remplacement de la balise d'ancrage est effectué avec une expression régulière (RegEx), avec laquelle je ne suis pas au courant ... Je l'ai trouvé en train d'effectuer cette recherche .