Inspire38 18.03.2023 13:36

Как ограничить доступ к определенной странице для определенных пользователей в WordPress?

Вопрос:

Приветствую. У меня возникла проблема в WordPress. Необходимо ограничить доступ к определенной странице только для определенных пользователей. Я хотел бы узнать, как это можно реализовать.

Мне нужно создать страницу, доступ к которой будет получать только определенный пользователь или группа пользователей. Например, я хочу, чтобы только администраторы или определенные пользователи могли увидеть страницу "Секретная информация".

Я пробовал использовать плагины, но они все ограничивают доступ ко всем страницам, а мне нужно ограничить только к одной конкретной странице.

Можете ли вы подсказать, как это можно сделать? Если можно, то приведите пожалуйста пример кода, где требуется помощь.


if ( !current_user_can( 'administrator' ) ) {
    $restricted_pages = array( 15, 25, 35 ); // ID ограниченных страниц
    if ( in_array( get_the_ID(), $restricted_pages ) ) {
        wp_redirect( home_url() ); // Перенаправляем на главную страницу
        exit;
    }
}

Заранее благодарю за помощь!

Ответы:

Egor24Partner 18.03.2023 13:57

Для ограничения доступа к определенной странице только для определенных пользователей в WordPress можно использовать функцию current_user_can. Эта функция позволяет проверить, имеет ли текущий пользователь определенную роль или специальные права.

Для начала, вам нужно определить, какие пользователи или группы пользователей могут видеть вашу страницу. Например, вы хотите, чтобы только администраторы и определенные пользователи имели доступ к странице "Секретная информация".

Приведу пример кода, демонстрирующий, как можно ограничить доступ к странице для всех, кроме администраторов и определенных пользователей:


if ( !current_user_can( 'administrator' ) ) {
    $restricted_pages = array( 15, 25, 35 ); // ID ограниченных страниц

    if ( in_array( get_the_ID(), $restricted_pages ) ) {
        wp_redirect( home_url() ); // Перенаправляем на главную страницу
        exit;
    }
}

В этом примере мы используем функцию current_user_can для проверки, имеет ли текущий пользователь роль "администратор". Если нет, то мы проверяем, является ли текущая страница одной из ограниченных страниц, перечисленных в массиве $restricted_pages. Если текущая страница входит в список ограниченных, мы перенаправляем пользователя на главную страницу с помощью функции wp_redirect.

Обратите внимание, что в этом примере мы используем ID ограниченных страниц. Чтобы узнать ID страницы, просто откройте ее в админ-панели WordPress и посмотрите на адресную строку. ID будет после "post=".

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

Удачи в вашем проекте!


Добавить ответ