Les tags ou étiquettes sont très utiles dans WordPress. Ils aident au maillage interne mais si cet élément n’est pas régulé il peut vite devenir très invasif et use le budget crawl de Google.

Très utile dans les gros sites avec de nombreux contributeurs ou auteurs, il faut réserver la création des étiquettes pour un certain rôle d’utilisateur. Par exemple le code suivant réserve exclusivement la création des étiquettes pour les administrateurs.

Mettre en place les deux hooks

Avec le code suivant, les éditeurs auteurs de votre site WordPress ne pourront pas créer d’étiquettes supplémentaires mais pourront utiliser les étiquettes déjà existantes :

function disallow_insert_term($term, $taxonomy) {
$user = wp_get_current_user();
if ( $taxonomy == 'post_tag' && in_array('editor', $user->roles) ) {
$option_name = 'disallow_insert_term' ;
$new_value = '1';
if ( get_option( $option_name ) !== false ) {
update_option( $option_name, $new_value );
} else {
add_option( $option_name, $new_value,);
}
}
}
add_action( 'pre_insert_term', 'disallow_insert_term', 10, 2);

 

function editor_admin_notice(){
$check=get_option('disallow_insert_term');
$user = wp_get_current_user();
if ( in_array( 'editor', (array) $user->roles ) && $check==1 ) {
update_option('disallow_insert_term', 0);
$class = 'notice notice-error';
$message = __( "Vous n'avez pas l'autorisation d'ajouter de nouvelles étiquettes.", 'sample-text-domain' );
printf( '<div class="%1$s">%2$s</div>', esc_attr( $class ), esc_html( $message ) );
}
}
add_action('admin_notices', 'editor_admin_notice');

Le premier hook permet d’interdire la création d’étiquettes.
Le deuxième permet de faire une alerte back-office qui alerte l’utilisateur afin de lui faire comprendre pourquoi les étiquettes qu’il saisit ne restent pas une fois la publication mise à jour.

0 0 votes
Article Rating
S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires