Nous avons actuellement environ 50 pages, chacune desquelles je souhaite qu'un utilisateur (par exemple, bob, rob, smith) ne puisse éditer qu'une seule page. Par exemple, Bob & Smith ont chacun leur propre page. Je ne veux pas que Bob puisse éditer la page de Smith. Je veux que Bob puisse SEULEMENT éditer sa page. Je m'en fiche s'il peut voir d'autres pages. En examinant les rôles des utilisateurs, je ne vois pas le moyen de le faire actuellement. Je vois seulement comment autoriser un accès restreint à une échelle globale.
Existe-t-il des plug-ins pour aider à restreindre l'accès en édition par utilisateur ou des rôles restreints à l'édition de pages spécifiques et je ne peux ajouter qu'un utilisateur par rôle? Ou y avait-il un moyen de faire cela avec les paramètres par défaut que j'ai manqués.
Le Role Scoper plugin peut l'activer.
Vous pouvez l'ajouter à votre fichier functions.php
dans votre modèle pour permettre à l'utilisateur de modifier les pages qu'il a créées et de gérer les médias. Spécifiez simplement leur $user_id
(c'est-à-dire 27):
function add_theme_caps() {
// to add capability to $user_id
$user = new WP_User( $user_id );
$user->add_cap( 'edit_pages' );
$user->add_cap( 'edit_published_pages' );
$user->add_cap( 'upload_files' );
}
add_action( 'admin_init', 'add_theme_caps' );
Vous pouvez trouver le $user_id
d'un utilisateur spécifique à partir de l'URL lorsque vous modifiez un utilisateur spécifique à partir de la page d'administration de Wordpress.
Voir la liste complète des Capacités Wordpress .
Si vous préférez modifier le rôle intégré contributor
pour permettre à tous les utilisateurs dotés du rôle contributor
de modifier les pages qu'ils ont créées:
function add_theme_caps() {
// to add capability to the role `contributor`
$role = get_role( 'contributor' );
$role->add_cap( 'edit_pages' );
$role->add_cap( 'edit_published_pages' );
$role->add_cap( 'upload_files' );
}
add_action( 'admin_init', 'add_theme_caps' );
Role Scope est très puissant, mais je pense que c'est exagéré pour cela. Si vous définissez Bob et Smith sur le rôle Auteur (l'un des rôles par défaut), ils ne pourront que modifier leurs propres publications.
Vous pouvez également simplement modifier la table WP. Il semblait que phpAdmin serait un moyen plus rapide.
La table est
wp_usermeta
Recherchez le user_id, changez la valeur pour
wp_capabilities
et le mettre à quelque chose comme
a:4:{s:11:"contributor";b:1;b:1;s:10:"edit_pages";b:1;s:20:"edit_published_pages";b:1;s:12:"upload_files";b:1;}
J'ai trouvé http://www.unserialize.me/ pour vous aider à vérifier que la sérialisation est correcte (et je m'attends à ce qu'il y ait également d'autres sites).