WordPress : Comment désactiver le filtre des vignettes pour une partie de modèle ou une taille d’image spécifique ?

Publié par Jean-Michel le

Je filtre post_thumbnail_html dans mon thème pour modifier la sortie de mes balises d’image. J’ai une partie de modèle à laquelle je voudrais que ce filtre ne s’applique pas. Il utilise une taille d’image qui n’est utilisée nulle part ailleurs dans le thème. Je cherche donc un moyen de ne pas appliquer ce filtre à une partie de modèle spécifique ou à une taille d’image spécifique, dans les deux cas. Est-ce possible.

Je ne pense pas que le filtre lui-même importe, mais juste au cas où le voici:

 if (! function_exists('_sf_responsive_img') ) :
 function _sf_responsive_img($html, $post_id, $post_thumbnail_id, $size, $attr) {
     //make image links
     $attachment_id = $post_thumbnail_id;
     $default = wp_get_attachment_image_src($attachment_id);
     $size = 'fd-sm';
     $small = wp_get_attachment_image_src($attachment_id, $size);
     $size = 'fd-med';
     $med = wp_get_attachment_image_src($attachment_id, $size);
     $size = 'fd-lrg';
     $lrg = wp_get_attachment_image_src($attachment_id, $size);
     //create image tag with queries
     $html = '<img src="'.$default[0].'"';
     $html .= 'data-interchange="['.$default[0].', (default)],';
     $html .= '['.$small[0].', (only screen and (min-width: 320px))],';
     $html .= '['.$med[0].', (only screen and (min-width: 768px))],';
     $html .= '['.$lrg[0].', (only screen and (min-width: 1024px))],';
     $html .='">';
     return $html;
 }
 add_filter('post_thumbnail_html', '_sf_responsive_img', 5, 5);
 endif; // ! _sf_responsive_img exists

Solution n°1 trouvée

La solution la plus simple consiste probablement à supprimer le filtre avant la sortie :

// remove the filter
remove_filter('post_thumbnail_html', '_sf_responsive_img', 5, 5);
// output template
get_template_part( 'something' );
// add the filter back on if other code below outputs thumbs that need the filter
add_filter('post_thumbnail_html', '_sf_responsive_img', 5, 5);

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *