J'ai donc besoin d'ajouter une classe aux liens autour des images à des fins de visionneuse. Mais uniquement pour les images du répertoire de téléchargement, pas pour les externes. J'ai trouvé cette solution par @ TommiForsström ici :
function add_colorbox_class_to_image_links($html, $attachment_id, $attachment) {
$linkptrn = "/<a[^>]*>/";
$found = preg_match($linkptrn, $html, $a_elem);
// If no link, do nothing
if($found <= 0) return $html;
$a_elem = $a_elem[0];
// Check to see if the link is to an uploaded image
$is_attachment_link = strstr($a_elem, "wp-content/uploads/");
// If link is to external resource, do nothing
if($is_attachment_link === FALSE) return $html;
if(strstr($a_elem, "class=\"") !== FALSE){ // If link already has class defined inject it to attribute
$a_elem_new = str_replace("class=\"", "class=\"colorbox ", $a_elem);
$html = str_replace($a_elem, $a_elem_new, $html);
}else{ // If no class defined, just add class attribute
$html = str_replace("<a ", "<a class=\"colorbox\" ", $html);
}
return $html;
}
add_filter('image_send_to_editor', 'add_colorbox_class_to_image_links', 10, 3);
On dirait que c'est exactement ce dont j'ai besoin, sauf que ça ne marche pas. Je l'ai essayé sur une installation propre WP trente-treize. Des pensées? Merci!
Eh bien, je vais répondre à ma question idiote moi-même. Comme l'explique Nice, le filtre image_send_to_editor s'exécute dans la fonction get_image_send_to_editor qui est chargée de l'envoi du lien HTML qui entoure les images envoyées à l'éditeur. Ce filtre s'exécute lorsque vous insérez une image à l'aide de Media Uploader dans l'éditeur. Il ne s’applique pas à vos images existantes dans vos publications/pages existantes.