J'ai ajouté des catégories aux images afin de pouvoir les utiliser pour filtrer les images d'une page de portefeuille. Maintenant, je pense avoir besoin d'ajouter l'attribut rel à chaque image contenant les catégories qui lui sont attribuées. Est-ce la bonne approche? Si oui, comment puis-je ajouter add rel avec les catégories applicables?
Cela devrait fonctionner pour l'attribut rel
:
/**
* Create a rel attribute from the image categories
*
* @see http://wordpress.stackexchange.com/a/158024/26350
*/
add_filter( 'get_image_tag',
function( $html, $id )
{
$rel = array();
foreach( (array) get_the_category( $id ) as $cat )
{
$rel[] = $cat->slug;
}
return str_ireplace(
'<img ',
sprintf( '<img rel="%s" ', join( ' ', $rel ) ),
$html
);
}
, 10, 2 );
où nous utilisons le filtre get_image_tag
pour modifier l’image HTML insérée.
Ps : Je viens de le tester avec succès sur mon installation WordPress 3.9.2, où j'ai utilisé le fragment de code suivant:
add_action( 'init',
function()
{
register_taxonomy_for_object_type( 'category', 'attachment' );
}
);
activer les catégories pour les pièces jointes .
J'ai fini par modifier légèrement pour utiliser data-filter au lieu de rel. Fonctionne parfaitement et est conforme aux normes.
add_filter( 'get_image_tag',
function( $html, $id )
{
$dataFilter = array();
foreach( (array) get_the_category( $id ) as $cat )
{
$dataFilter[] = $cat->slug;
}
return str_ireplace(
'<img ',
sprintf( '<img data-filter="%s" ', join( ' ', $dataFilter ) ),
$html
);
}
, 10, 2 );