Dans le backend, comment puis-je empêcher les éditeurs (utilisateur avec le rôle d'éditeur) de voir/éditer des pages créées par admin (et/ou par le rôle d'administrateur)?
Je sais que le rôle d’éditeur dans WordPress a la fonctionnalité "edit_others_pages", mais j’ai besoin d’une fonction pour une fonctionnalité personnalisée telle que: "edit_others_pages_except_admin" :)
Je ne veux pas utiliser un plugin énorme/compliqué juste pour ça!
Merci! J'ai cherché une solution plus de 1h: D
Ce code fera le travail ...
<?php
add_action('pre_get_posts', 'filter_posts_list');
function filter_posts_list($query)
{
//$pagenow holds the name of the current page being viewed, we want to run our code only on edit.php (posts list)
global $pagenow;
//If the 'Editor' is logged in, exclude 'Admin's posts
if(current_user_can('editor') && ('edit.php' == $pagenow))
{
//global $query's set() method for excluding admin's posts
$query->set('author', '-1');
}
}
Pour une explication détaillée , lisez ici .