Разрешение пользователям редактировать только свою страницу, а не чужие
У нас сейчас около 50 страниц, и для каждой я хочу, чтобы пользователь (например, bob, rob, smith) мог редактировать только 1 страницу. Например, у bob и smith есть свои собственные страницы. Я не хочу, чтобы bob мог редактировать страницу smith. Я хочу, чтобы bob мог редактировать ТОЛЬКО страницу bob. Не важно, может ли он видеть другие страницы.
Изучая роли пользователей, я не нашел способа сделать это — я вижу только возможность ограничить доступ на глобальном уровне.
Есть ли плагины, которые помогут ограничить права редактирования для каждого пользователя, или роли, ограниченные редактированием определенных страниц, чтобы я мог просто добавить по одному пользователю на роль? Или, может быть, есть способ сделать это с настройками по умолчанию, который я пропустил?

Вы можете добавить этот код в файл functions.php
вашей темы, чтобы разрешить пользователю редактировать созданные им страницы и управлять медиафайлами. Просто укажите его $user_id
(например, 27):
function add_theme_caps() {
// добавление возможностей для $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' );
Вы можете найти $user_id
конкретного пользователя из URL, когда редактируете его в админке WordPress.
См. полный список возможностей пользователей WordPress.
Если вы хотите изменить встроенную роль contributor
, чтобы все пользователи с этой ролью могли редактировать созданные ими страницы:
function add_theme_caps() {
// добавление возможностей для роли `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 Scoper может это включить.

Вы также можете просто отредактировать таблицу WP напрямую. Казалось, что phpAdmin будет более быстрым вариантом.
Таблица называется
wp_usermeta
Найдите user_id, измените значение для
wp_capabilities
и установите его примерно так
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;}
Я нашел http://www.unserialize.me/ полезным для проверки правильности сериализации (и предполагаю, что есть и другие подобные сайты)
