Je dois pouvoir: 1.) attribuer des catégories aux images et 2.) ajouter des classes à toutes les images correspondant aux catégories qui leur ont été attribuées.
J'ai pu ajouter des catégories aux images avec les éléments suivants:
function ug_add_categories_to_attachments() {
register_taxonomy_for_object_type( 'category', 'attachment' );
}
add_action( 'init' , 'ug_add_categories_to_attachments' );
Et j'ai trouvé une fonction pour ajouter une classe aux images comme ceci:
function add_image_class($class){
$class .= ' additional-class';
return $class;
}
add_filter('get_image_tag_class','add_image_class');
Mais je ne suis pas assez avancé avec php pour aller beaucoup plus loin. J'ai essayé ça
function ug_add_image_class($class){
foreach(get_the_category() as $cat) { $class .= ' category-'.$cat->slug; };
return $class;
}
add_filter('get_image_tag_class','ug_add_image_class');
mais pas d'amour ...
Aidez-moi? Des idées? S'il vous plaît? et joyeux vendredi!
Cela devrait faire l'affaire, espérons-le:
/**
* Append the image categories to the current image class.
*
* @see http://wordpress.stackexchange.com/a/156576/26350
*/
add_filter( 'get_image_tag_class',
function( $class, $id, $align, $size )
{
foreach( (array) get_the_category( $id ) as $cat )
{
$class .= ' category-' . $cat->slug;
}
return $class;
}
, 10, 4 );
Si nous définissons les catégories d'images comme (par exemple):
rolling-stones, steel-wheels-tour, wembley
Capture d'écran:
et ensuite insérer l'image dans le post, nous obtenons les classes supplémentaires comme prévu:
category-rolling-stones category-steel-wheels-tour category-wembley
Capture d'écran: