Sur notre page WordPress, nous sommes plusieurs personnes qui écrivons des articles. Toutes ces personnes occupent des rôles d'utilisateur différents. Certains sont des éditeurs, d'autres ne sont que des auteurs et je suis l'administrateur.
Je sais que vous pouvez mettre en évidence un commentaire ou une réponse de l'auteur du message en écrivant
.commentlist .bypostauthor {
# some styles
}
dans votre fichier CSS, mais comment puis-je modifier cela, afin que chaque commentaire ou réponse écrit par un utilisateur enregistré de l’un des rôles utilisateur suivants auteur, éditeur et administrateur soit mis en surbrillance?
Merci de m'avoir aidé :)
Il existe un filtre appelé comment_class
pour cela:
apply_filters( 'comment_class', $classes, $class, $comment->comment_ID, $comment, $post_id );
Utilisez simplement l'argument comment
qui est un objet et vous obtiendrez $comment->user_id
qui pourrait être utile pour obtenir le rôle d'utilisateur et ajouter vos classes.
MODIFIER:
add_filter( 'comment_class', 'wpse_253517_comment_class', 10, 5 );
function wpse_253517_comment_class( $classes, $class, $comment_ID, $comment, $post_id ) {
if ( 0 === (int) $comment->user_id ) {
return $classes;
}
$user_data = get_userdata( $comment->user_id );
$role = reset( $user_data->roles );
switch( $role ) {
case 'subscriber':
$classes[] = 'is-subscriber';
break;
// here would be other cases, other roles
default:
return $classes;
}
return $classes;
}