Опис прав доступу (capabilities) у WordPress: як налаштувати меню та управління доступом для користувачів


WordPress надає гнучку систему прав доступу (capabilities), яка дозволяє точно контролювати, хто і які дії може виконувати на сайті. Ці права можна застосовувати до різних ролей користувачів, таких як підписник, автор, редактор і адміністратор, а також для користувачів з кастомними ролями. У цій статті ми розглянемо основні права доступу, їх призначення та приклади того, як їх застосовувати на практиці.

Опис прав доступу (capabilities) у WordPress: як налаштувати меню та управління доступом для користувачів

Що таке права доступу (capabilities)?

Права доступу в WordPress — це дозволи, які визначають, що конкретний користувач може або не може робити на сайті. Наприклад, чи може він редагувати сторінки, встановлювати плагіни або завантажувати зображення.

Коли ви створюєте або редагуєте ролі користувачів, ви призначаєте їм певні права доступу. Це дозволяє вам регулювати дії користувачів на сайті.

Які права доступу є в WordPress?





Перед тим, як почати, давайте виділимо кілька основних прав (capabilities), які найбільш часто використовуються в WordPress:

  • read — право для перегляду контенту.

  • edit_posts — право для редагування власних записів.

  • publish_posts — право для публікації записів.

  • edit_others_posts — право для редагування чужих записів.

  • manage_options — право для управління всіма налаштуваннями сайту (наприклад, налаштування плагінів і теми).

  • upload_files — право для завантаження файлів у медіатеку.

  • activate_plugins — право для активації плагінів.

  • edit_users — право для редагування користувачів.

Ці права використовуються в різних ситуаціях, наприклад, щоб вирішити, хто може змінювати контент, публікувати статті, змінювати налаштування сайту або керувати користувачами.

Як застосувати права доступу на практиці

Тепер, коли ми знаємо, що таке права доступу, давайте розглянемо, як їх застосувати на практиці. У цій частині статті ми будемо використовувати функцію add_menu_page(), щоб додати меню та підменю з використанням різних прав доступу.

Приклад 1: Меню, доступне для всіх користувачів (read)

Ми почнемо зі створення простого пункту меню, доступного для всіх зареєстрованих користувачів, включаючи підписників.

add_menu_page(
    'Меню для всіх',        // Заголовок сторінки
    'Меню для всіх',        // Назва в меню
    'read',                 // Права доступу (всі зареєстровані користувачі)
    'menu_for_all',         // Слаг
    'menu_for_all_page',    // Функція виведення
    'dashicons-visibility', // Іконка
    25                      // Позиція
);

function menu_for_all_page() {
    echo '<h1>Це меню доступне для всіх користувачів!</h1>';
}

Що робить цей код?

  • Створюється пункт меню “Меню для всіх”, який буде доступний усім користувачам з правами read (це означає, що цей пункт меню буде доступний всім зареєстрованим користувачам).

  • У разі натискання на цей пункт меню, відкриється сторінка з заголовком “Це меню доступне для всіх користувачів!”.

Результат:

  • Пункт меню буде видимий всім користувачам сайту, незалежно від їх ролі.

Приклад 2: Меню, доступне тільки редакторам і адміністраторам (edit_posts)

Тепер давайте створимо пункт меню, доступний тільки для редакторів та адміністраторів. Це буде корисно, якщо ви хочете надати доступ до певного функціоналу тільки користувачам з вищими правами.

add_menu_page(
    'Меню для редакторів',        // Заголовок сторінки
    'Меню для редакторів',        // Назва в меню
    'edit_posts',                 // Права доступу (тільки редактори та вище)
    'menu_for_editors',           // Слаг
    'menu_for_editors_page',      // Функція виведення
    'dashicons-edit',             // Іконка
    25                            // Позиція
);

function menu_for_editors_page() {
    echo '<h1>Це меню доступне тільки для редакторів та адміністраторів!</h1>';
}

Що робить цей код?

  • Пункт меню “Меню для редакторів” буде доступний тільки користувачам з правами edit_posts (редактори та адміністратори).

  • Коли редактор або адміністратор натисне на меню, відкриється сторінка з повідомленням “Це меню доступне тільки для редакторів та адміністраторів!”.

Результат:

  • Пункт меню буде видимий тільки для редакторів та адміністраторів, інші користувачі не зможуть його побачити.

Приклад 3: Меню для адміністраторів (права manage_options)

Для адміністраторів можна додати більш високий рівень доступу. Наприклад, якщо ви хочете, щоб доступ до меню був тільки у адміністраторів, використовуйте право manage_options, яке зазвичай обмежує доступ до важливих налаштувань сайту (наприклад, налаштування теми або плагінів).

add_menu_page(
    'Меню для адміністраторів',   // Заголовок сторінки
    'Меню для адміністраторів',   // Назва в меню
    'manage_options',             // Права доступу (тільки адміністратори)
    'menu_for_admins',            // Слаг
    'menu_for_admins_page',       // Функція виведення
    'dashicons-admin-tools',      // Іконка
    25                            // Позиція
);

function menu_for_admins_page() {
    echo '<h1>Це меню доступне тільки для адміністраторів!</h1>';
}

Що робить цей код?

  • Пункт меню “Меню для адміністраторів” буде доступний тільки користувачам з правами manage_options (тобто тільки адміністраторам).

  • Створюється сторінка з заголовком “Це меню доступне тільки для адміністраторів!”.

Результат:

  • Пункт меню доступний тільки адміністраторам сайту. Користувачі з ролями нижче адміністратора не зможуть його побачити.

Приклад 4: Розділ для завантаження файлів, доступний авторам і вище (upload_files)

Припустимо, ви хочете, щоб користувачі, починаючи з ролі автор (і вище), могли завантажувати зображення в медіатеку. Для цього використовується право upload_files.

add_menu_page(
    'Меню для завантаження файлів',    // Заголовок сторінки
    'Завантаження файлів',             // Назва в меню
    'upload_files',                    // Права доступу (автори та вище)
    'menu_for_upload',                 // Слаг
    'menu_for_upload_page',            // Функція виведення
    'dashicons-upload',                // Іконка
    25                                  // Позиція
);

function menu_for_upload_page() {
    echo '<h1>Це меню для завантаження файлів доступне авторам та вище!</h1>';
}

Що робить цей код?

  • Пункт меню “Завантаження файлів” буде доступний користувачам з правами upload_files (наприклад, автори та редактори).

  • Створюється сторінка з заголовком “Це меню для завантаження файлів доступне авторам та вище!”.

Результат:

  • Пункт меню буде доступний для авторів, редакторів та адміністраторів.

Висновок

У цій статті ми розглянули основні права доступу в WordPress і показали, як їх використовувати для створення меню та управління доступом. Використовуючи права доступу (capabilities), ви можете гнучко налаштувати доступ для різних користувачів на вашому сайті. Це дозволить вам створити більш безпечне і зручне середовище для роботи користувачів з різними рівнями прав.

Налаштування прав доступу — це не лише важлива частина безпеки сайту, але й ефективний інструмент для управління контентом і функціональністю в WordPress.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *