web-dev-qa-db-fra.com

Permettre aux utilisateurs de modifier uniquement leur page et celle de personne d'autre

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.

7
zealeus

Le Role Scoper plugin peut l'activer.

0
Milo

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' );
9
Brendan Nee

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.

4
Adam Rice

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).

0
Fred Andrews