Permițând utilizatorilor să editeze doar propriile pagini și pe ale altora
Î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?

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' );

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

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)
