Разрешить пользователю редактировать только свою страницу и профиль
Я создаю сайт на WordPress со списком участников, где у каждого участника (около 20) есть своя страница. Каждая страница участника создается администратором, но теперь я застрял.
Мне нужно, чтобы содержимое каждой страницы участника мог редактировать только администратор и сам участник.
Например: Администратор создает страницу для Джона. Джон может войти в систему и видит ссылку только на свою страницу (и ни на какие другие), где он может редактировать контент этой страницы. Тони не может редактировать страницу Джона.
Как этого добиться? Возможно ли это "из коробки" в WordPress? Нужны ли какие-то плагины?
P.S. Все мои участники имеют роль Автора, поэтому когда администратор создает страницу, автором страницы может быть назначен участник.

Прочтите WordPress Codex на тему ролей http://codex.wordpress.org/Roles_and_Capabilities
Чтобы убедиться, что система работает так, как вы хотите, создайте тестового участника с ролью автора и примерным контентом, как для «настоящего» участника. Затем выйдите из системы и войдите, используя учетные данные тестового участника, и посмотрите, какие возможности у этого тестового пользователя по сравнению с тем, что вы хотите, чтобы у него было.
Роль автора или участника должна делать то, что вы описываете. В противном случае вы всегда можете создать пользовательскую роль для своего сайта, которая будет иметь необходимые возможности, и назначить своим участникам эту пользовательскую роль.

Хорошо, Джон, я понимаю, что ты пытаешься сделать, но, к сожалению, это невозможно при стандартной установке WordPress (WP).
Пользователи в WP разделены на уровни, такие как Администратор, Редактор, Автор и т.д. Каждый уровень имеет свой набор возможностей.
Проблема в том, что если все участники имеют один и тот же уровень пользователя, они обладают одинаковыми возможностями. По сути, каждый участник с одинаковым уровнем может читать/редактировать всё то же, что и другие.
Ты когда-нибудь слышал о создании сети сайтов на WP? Это очень просто. Просто следуй этим инструкциям.
После создания сети создай отдельный сайт для каждого участника. Если ты используешь BuddyPress, активируй плагин на уровне сети.
Теперь стандартной ролью каждого участника будет администратор, но ты остаёшься суперадминистратором сети. Они смогут читать и редактировать только свою часть сети WP. Ты можешь изменить их роль на Автора для их индивидуального сайта и предоставить им тему или страницу для редактирования.
Ещё один отличный способ управления пользователями — это плагин User Role Editor.
Ты можешь переключаться между пользователями для проверки результатов с помощью этого плагина: User Switching.
Используй этот плагин (Admin Menu Editor), чтобы скрывать пункты меню админки для каждого пользователя, а также настраивать, что они должны видеть.

Ты берешь около 34 долларов в час, это слишком много, мой друг. Такие вещи действительно вполне достижимы.
Смотри мой ответ, почему я так говорю.

Добро пожаловать на WPSE. Просто совет, пожалуйста, не используйте этот сайт для самопродвижения. Это считается спамом. Я удалил вашу рекламу. Пожалуйста, воздержитесь от этого. Спасибо.

Один из способов — создавать новую страницу каждый раз при создании пользователя. Сохранять ID этой страницы в метаданных пользователя. Если вся работа с редактированием происходит на фронтенде, то достаточно просто проверить условие: совпадает ли сохранённый ID страницы с тем, что в метаданных пользователя, или является ли пользователь администратором. В противном случае доступ должен быть запрещён.
Это будет ещё проще, если использовать записи (posts), потому что тогда вы просто создаёте запись для пользователя, где автором является сам пользователь. По умолчанию WordPress позволяет всем пользователям редактировать свои записи, а также администраторам. Как показано ниже, вы также можете хранить информацию/контент профиля пользователя прямо в метаданных записи.
Третий вариант — создать шаблон страницы, который отображает профиль пользователя и опции редактирования, и настроить его так, чтобы он получал ID пользователя. Затем можно сохранять всю информацию профиля в метаданных пользователя. Конечно, это исключает администраторов, так как по умолчанию они будут видеть свою собственную страницу, если только не добавить форму и поле, позволяющее администраторам открывать профили других пользователей по имени, ID или другим данным.

Да, каждый раз при создании нового пользователя администратор создает для него страницу без контента. Автор этой страницы затем устанавливается в этого пользователя, поэтому я ищу способ, чтобы пользователь мог войти в систему и редактировать контент только на своей странице. Ваши первый и третий варианты более реалистичны, есть ли какие-то подсказки (или плагины) о том, как этого добиться?

Я попробовал плагин User Role Editor - он не предоставляет то, что мне нужно. Когда страница создается, администратор устанавливает автора страницы в пользователя. Мне нужно, чтобы можно было проверить, если автор текущей страницы - это авторизованный пользователь, то разрешить ему редактировать страницу.

Это зависит от ваших навыков в PHP. Как я уже ответил, создание шаблона страницы для профиля пользователя будет самым простым решением. Получите ID текущего пользователя и действуйте оттуда. Я не знаю навскидку плагинов, которые бы это делали, но уверен, что они существуют.
