Пользовательская роль – не может редактировать или публиковать страницы?

Вопрос или проблема

Я создаю пользовательскую роль с помощью кода ниже в functions.php, однако WordPress позволяет пользователю только создавать черновики страниц, они не могут редактировать черновики или публиковать страницы, несмотря на то, что я установил права на «истинно»?

Любая помощь будет очень ценна! Заранее спасибо.

add_action('admin_init', 'user_custom_roles');

function user_custom_roles() {

        add_role(
        'editor_limited',
        'Ограниченный Редактор',
        array(
            'read' => true,
            'edit_pages' => true,
            'edit_posts' => true,
            'edit_published_pages' => true,
            'edit_published_posts' => true,
            'edit_others_pages' => true,
            'edit_others_posts' => true,
            'publish_pages' => true,
            'publish_posts' => true,
            'upload_files' => true,
            'unfiltered_html' => true
        )
    );
}

Просто добавьте код ниже в вашу текущую активную тему. Удалите add_action & функции. Просто вставьте код ниже

$result = add_role( 'client', __(

'Клиент' ),

array(

'read' => true,
'edit_pages' => true,
'edit_posts' => true,
'edit_published_pages' => true,
'edit_published_posts' => true,
'edit_others_pages' => true,
'edit_others_posts' => true,
'publish_pages' => true,
'publish_posts' => true,
'upload_files' => true,
'unfiltered_html' => true

)

);

Хотя хорошо знать, как редактировать код, чтобы получить желаемый результат, я предпочитаю использовать плагины для выполнения этой работы, где это возможно. Это защищает решение от будущих изменений, перекладывая ответственность по обновлениям WordPress на автора плагина, а не на вас или вашего клиента. Итак, вы рассматривали плагин https://en-gb.wordpress.org/plugins/user-role-editor/? Это должно быть легко настраиваемо для выполнения ваших требований.

Я решил проблему. Проблема заключалась в том, что пользовательские возможности остались в кэше. Когда я изменил возможности, это не дало эффекта. Поэтому мне пришлось использовать команду remove_role(“editor_limited”), чтобы удалить пользовательскую роль, а затем добавить её обратно.

Ответ или решение

Проблема с правами на редактирование и публикацию страниц для пользовательской роли в WordPress

Создание пользовательских ролей в WordPress — это распространённая задача для администраторов, которым необходимо настроить доступ в зависимости от специфики работы их команды. Однако, как вы уже заметили, иногда могут возникнуть проблемы с правами, которые нарушают ожидаемое поведение системы.

Описание Проблемы

Вы столкнулись с тем, что созданная вами пользовательская роль editor_limited может создавать черновики, но не имеет возможности редактировать или публиковать страницы. Вы уже задали необходимые способности при создании роли, но они не работают должным образом.

Анализ Кода

Ваш код в файле functions.php выглядит следующим образом:

add_action('admin_init', 'user_custom_roles');

function user_custom_roles() {
    add_role(
        'editor_limited',
        'Editor Limited',
        array(
            'read' => true,
            'edit_pages' => true,
            'edit_posts' => true,
            'edit_published_pages' => true,
            'edit_published_posts' => true,
            'edit_others_pages' => true,
            'edit_others_posts' => true,
            'publish_pages' => true,
            'publish_posts' => true,
            'upload_files' => true,
            'unfiltered_html' => true
        )
    );
}

На первый взгляд, определения способностей для роли editor_limited выглядят корректно. Тем не менее, есть несколько нюансов, которые могут повлиять на функциональность.

Возможные Причины Проблемы

  1. Кэширование Прав Доступа:
    WordPress иногда использует кэширование для прав доступа. Если вы изменили права доступа для существующей роли, изменения могут не вступить в силу до тех пор, пока вы не очистите кэш или не перезагрузите вордпресс. Как вы уже заметили, удаление роли с помощью remove_role("editor_limited") и последующее её добавление обратно может решить проблему.

  2. Конфликтующие Плагины:
    Некоторые плагины могут конфликтовать с вашими настройками ролей и прав доступа. Проверьте, нет ли действующих плагинов, которые могут влиять на управление правами пользователя, например, плагины для настройки пользовательских ролей.

  3. Настройки Темы:
    Некоторые темы могут также управлять разрешениями для ролей пользователей. Убедитесь, что ваша тема не накладывает никаких дополнительных ограничений.

  4. Системные Ошибки:
    Ошибки в коде или устаревшие функции могут повлиять на работу вашего сайта. Попробуйте включить режим отладки в WordPress, чтобы выявить возможные ошибки.

Рекомендуемые Решения

  1. Удалите и Добавьте Роль Обратно:
    Как вы уже сделали, используйте remove_role() для удаления роли, а затем используйте add_role() для её восстановления. Это поможет убедиться, что все изменения активируются должным образом.

  2. Используйте Плагины:
    Рассмотрите возможность использования плагина, такого как User Role Editor. Это поможет вам управлять ролями и правами доступа более интуитивно, не прибегая к редактированию кода.

  3. Очистите Кэш:
    Если ваш сайт использует плагины кэширования, очистите кэш, чтобы изменения вступили в силу.

  4. Отладка:
    Включите отладку в WordPress, добавив следующую строку в файл wp-config.php:

    define('WP_DEBUG', true);

    Это позволит вам видеть ошибки и предупреждения, которые могут помочь в диагностике проблемы.

Заключение

Создание и управление пользовательскими ролями в WordPress — это мощный инструмент, но он требует внимательности к деталям. Если вы следуете всем вышеперечисленным шагам, это может решить большинство проблем, связанных с разрешениями. Не забывайте также учитывать возможности сторонних плагинов, которые могут значительно упростить процесс настройки ролей и прав доступа.

Оцените материал
Добавить комментарий

Капча загружается...