J'ai une fonction qui enveloppe les images dans un div personnalisé.
Il est placé dans functions.php et modifie tous les articles. J'aimerais savoir s'il existe un moyen uniquement de l'appliquer à des publications d'une certaine catégorie.
Voici la fonction:
function my_image_tag($html, $id , $alt, $title) {
$html = "<div class='my-class'>" . $html . "</div>";
return $html;
}
add_filter('get_image_tag','my_image_tag',10,4);
La méthode de Robert Hue ne fonctionnait pas avec cette fonction, mais avec la fonction suivante, qui me semble meilleure (du moins pour mon utilisation):
function wrapImagesInDiv($content) {
if ( in_category( 'prosjekter' ) ) {
$pattern = '/(<img[^>]*class=\"([^>]*?)\"[^>]*>)/i';
$replacement = '<div class="image-container $2">$1</div>';
$content = preg_replace($pattern, $replacement, $content);
}
return $content;
}
add_filter('the_content', 'wrapImagesInDiv');
Vous devriez vérifier les publications de la catégorie pour modifier le contenu. Spécifiez l'ID de la catégorie (entier), le nom ou le slug (chaîne), ou un tableau de ceux-ci dans la vérification in_category.
function my_image_tag( $html, $id , $alt, $title ) {
if ( in_category( '1' ) ) {
$html = "<div class='my-class'>" . $html . "</div>";
}
return $html;
}
add_filter( 'get_image_tag', 'my_image_tag', 10 ,4 );
Pour la catégorie slug blog-post
, vous pouvez utiliser in_category( 'blog-post' )
Si vous voulez utiliser plus d'une catégorie, vous pouvez faire quelque chose comme.
in_category( array( '15', 'Tropical Birds', 'small-mammals' ) )
C'est une combinaison d'identifiant, de nom et de slug. SO c'est à vous de choisir comment vous en servir.
EDIT
Si vous utilisez cette boucle extérieure, essayez ceci.
function my_image_tag( $html, $id , $alt, $title ) {
global $post;
if ( in_category( '1' ) ) {
$html = "<div class='my-class'>" . $html . "</div>";
}
return $html;
}
add_filter( 'get_image_tag', 'my_image_tag', 10 ,4 );