WordPress как на ладони
wordpress jino

Как восстановить роль после ее удаления?

Доброго времени суток.

Вопрос, возможно ли востановить дефолтную (базовую) роль после remove_role()?
Например "author".

1
No484 1.1 года назад
  • 0
    Kama4558

    Роли и данные о них хранятся в опциях, при удалении они удаляются... См. опцию get_option('wp_user_roles').

    Вариант восстановить роль - это запустить тот код который создал эту роль. Или скопировать настройки из дампа базы данных где эта роль еще есть...

    В частности, вот пример, как можно восстановить базовую роль автора - author.

    Во время установки WP, функция wp_install() вызывает функцию populate_roles(). Смотрим код: /wp-admin/includes/schema.php

    Видим, как создается роль автора. Собираем все данные и запускаем ОДИН РАЗ полученный код:

    add_role('author', 'Author');
    
    // из populate_roles_160
    $role = get_role('author');
    $role->add_cap('upload_files');
    $role->add_cap('edit_posts');
    $role->add_cap('edit_published_posts');
    $role->add_cap('publish_posts');
    $role->add_cap('read');
    $role->add_cap('level_2');
    $role->add_cap('level_1');
    $role->add_cap('level_0');
    
    // из populate_roles_210
    $role->add_cap('delete_posts');
    $role->add_cap('delete_published_posts');
    

    Автор восстановлен!

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Регистрация. Вход.