WordPress має механізм ролей і можливостей, або, інакше кажучи, груп користувачів і їх прав для того, щоб контролювати поведінку користувачів на сайті, особливо в адміністративній частині.
Наприклад «Адміністратори» - це група користувачів, а switch_themes (можливість зміни теми оформлення) вже відноситься до прав цієї групи.
Як зазвичай я почну від простого до складного.
У WordPress за замовчуванням вже існує 6 груп користувачів:
Відразу після установки WordPress автоматично створюється користувач-адміністратор.
Також ви можете встановити, яку роль потрібно присвоювати тільки що зареєстрованому користувачу. Це налаштовується в «Налаштування> Загальні».
Змінити роль користувача можна на сторінці його профілю або ж на сторінці з усіма користувачами:
Трохи далі я покажу, як можна видалити стандартні ролі і створити власну.
2. Можливості
У таблиці для економії місця я не став розглядати роль суперадміністратора і передплатника. Суперадмін це по суті той же адміністратор, тільки з правами управління мережею сайтів (WordPress Multisite). Трохи нижче я ще напишу про нього. А ось про передплатників не напишу, так як про них і так все зрозуміло - має тільки одну можливість read.
Як і обіцяв, зупинюся трохи докладніше на суперадміністратора. Звичайні адміністратори мають всі права на управління своїми сайтами. Суперадміністратора ж можуть керувати будь-яким сайтом в мережі, а також всією мережею в цілому.
У них є кілька власних можливостей:
- manage_network дає доступ в консоль мережі,
- manage_sites доступ до сторінки управління сайтами мережі,
- manage_network_users можливість управління користувачами мережі,
- manage_network_themes управління темами мережі,
- manage_network_options доступ до параметрів мережі;
Починаючи з версії WordPress 3.0 рівні користувачів більше не використовуються!
4. Функції для роботи з ролями і можливостями користувачів
add_role () - створення власної ролі
Функція заносить дані в базу, тому найкраще її використовувати тільки один раз, наприклад при активації плагіна або теми.
remove_role () - видалення ролей
Також, як і add_role (). функція змінює вміст бази даних - а значить не потрібно просто тупо вставляти її в functions.php.
У прикладі видалимо роль, створену в минулому розділі:
get_role () - отримання інформації про групу користувачів
У разі успіху повертає об'єкт WP_Role (який складається переважно з можливостей ролі), в разі невдачі - null.
add_cap () і remove_cap () - додавання і видалення можливостей
Завдяки цим функціям ви можете додати або видалити права для користувачів певної ролі або навіть для користувачів з певними ID.
Ці функції також змінюють вміст бази даних, тому як приклад ми повісимо їх на активацію / деактивацію теми.