Permițând utilizatorilor să editeze doar propriile pagini și pe ale altora

26 mar. 2012, 19:16:37
Vizualizări: 16.7K
Voturi: 7

În prezent avem aproximativ 50 de pagini, fiecare dintre acestea dorind să permită unui utilizator (de exemplu, bob, rob, smith) să editeze doar 1 pagină. De exemplu, bob și smith au fiecare pagina lor. Nu vreau ca bob să poată edita pagina lui smith. Vreau ca bob să poată edita DOAR pagina lui bob. Nu mă deranjează dacă poate vedea alte pagini.

Analizând rolurile de utilizator, nu văd în prezent o metodă de a face acest lucru - văd doar cum să restricționez accesul la nivel global.

Există vreun plugin care să ajute la restricționarea accesului de editare pe utilizator sau roluri restricționate la editarea anumitor pagini, astfel încât să pot adăuga câte un utilizator pe rol? Sau există o metodă de a face acest lucru cu setările implicite pe care le-am omis?

1
Comentarii

Rolul de Contributor permite doar editarea propriilor postări. Alternativ, poți crea un rol personalizat.

Brad Dalton Brad Dalton
23 oct. 2014 16:20:45
Toate răspunsurile la întrebare 4
0

Puteți adăuga acest cod în fișierul functions.php din tema dumneavoastră pentru a permite utilizatorului să editeze paginile pe care le-a creat și să gestioneze fișierele media. Doar specificați $user_id-ul lor (de exemplu 27):

function add_theme_caps() {
    // pentru a adăuga capabilități unui $user_id specific
    $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' );

Puteți găsi $user_id-ul unui utilizator specific din URL când editați acel utilizator din pagina de administrare WordPress.

Vedeți lista completă a capabilităților WordPress.

Dacă preferați să modificați rolul predefinit contributor pentru a permite tuturor utilizatorilor cu acest rol să modifice paginile pe care le-au creat:

function add_theme_caps() {
    // pentru a adăuga capabilități rolului `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' );
15 dec. 2014 00:48:40
0

Role Scope este foarte puternic, dar cred că este exagerat pentru această situație. Dacă îi setați pe Bob și Smith să aibă rolul de Autor (unul dintre rolurile implicite), ei vor putea edita doar propriile lor articole.

26 mar. 2012 22:31:04
0

Plugin-ul Role Scoper poate activa această funcționalitate.

26 mar. 2012 19:27:17
0

Puteți, de asemenea, să editați direct tabelul WP. Părea că phpAdmin ar fi o metodă mai rapidă.

Tabelul este

wp_usermeta

Căutați user_id, modificați valoarea pentru

wp_capabilities

și setați-o la ceva de genul

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;}

Am găsit http://www.unserialize.me/ util pentru a mă asigura că serializarea este corectă (și mă aștept să existe și alte site-uri similare)

23 dec. 2016 02:31:40