WordPress : Comment désactiver le filtre des vignettes pour une partie de modèle ou une taille d’image spécifique ?
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);
0 commentaire