Magazine Internet

WordPress : comment empêcher la modification ou la suppression d'un article après une période

Publié le 27 avril 2013 par Acs04

La gestion d’un site Web sous WordPress avec de nombreux utilisateurs peut parfois s’avérer compliquée. Il y a des plugins qui permettent de gérer le workflow de publication, mais vous pouvez vous trouvez dans certaines situations particulières. Par exemple, passé un certain temps, vous pourriez vouloir interdire la modification ou la suppression d’un article pour tous les utilisateurs de votre site WordPress.

Par exemple, si un article date de plus de 30 jours il ne pourra plus être modifié ou supprimé que par un administrateur. Dans cet article nous allons vous expliquer comment procéder pour mettre en oeuvre ce blocage.

Tout ce que vous avez besoin de faire, c’est de copier / coller le bout de code suivant dans le fichier functions.php de votre thème ou dans un plugin.

function acs_restrict_editing( $allcaps, $cap, $args ) { if( 'edit_post' != $args[0] & 'delete_post' != $args[0] || !empty( $allcaps['manage_options'] ) || empty( $allcaps['edit_posts'] ) ) return $allcaps; // Chargement des données de l'article : $post = get_post( $args[2] ); if( 'publish' != $post->post_status ) return $allcaps; // Si l'article a plus de 30 jours if( strtotime( $post->post_date ) < strtotime( '-30 day' ) ) { // On désactive l'édition . $allcaps[$cap[0]] = FALSE; } return $allcaps; } add_filter( 'user_has_cap', 'acs_restrict_editing', 10, 3 );

123456789101112131415161718192021 functionacs_restrict_editing($allcaps,$cap,$args){   if('edit_post'!=$args[0]&'delete_post'!=$args[0]  ||!empty($allcaps['manage_options'])  ||empty($allcaps['edit_posts']))  return$allcaps;   // Chargement des données de l'article :  $post=get_post($args[2]);   if('publish'!=$post->post_status)  return$allcaps;   // Si l'article a plus de 30 jours   if(strtotime($post->post_date)<strtotime('-30 day')){  // On désactive l'édition .  $allcaps[$cap[0]]=FALSE;  }  return$allcaps;}add_filter('user_has_cap','acs_restrict_editing',10,3);

Cette fonction vérifie si l’utilisateur a la capacité de modifier ou de supprimer un article. Ensuite, elle vérifie le statut de l’article (publié ou pas). Et, si l’article a plus de 30 jours la possibilité de modifier ou de supprimer l’article est désactivée pour tous les utilisateurs hormis les administrateurs qui conservent la possibilité de modifier ou de supprimer un article à n’importe quel moment.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Acs04 542 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazine