Разграничение доступа без плагинов

+17

Для разграничения доступа в Wordpress написано немало плагинов. Но как правило они либо недостаточно функциональны, либо реализуют слишком много ненужных функций, тем самым излишне замедляя работу сайта. Если же вам просто нужно ограничить доступ к странице (или её частям) для определенных групп- можно обойтись парой функций темы. Далее я пошагово распишу как это сделать.

Блок с выбором групп в форме редактирования поста

Привожу листинг кода с комментариями.

Он добавляет к форме редактирования поста блок с выбором групп, которым нужно открыть доступ к данному посту (если не выбрана ни одна группа- доступ имеют все).

Выглядит данный блок примерно так:

Данный код следует поместить в конец файла functions.php вашей темы:

Функции проверки доступа к странице

Здесь потребуется две функции.

Первая. Проверяет доступ пользователя к текущей странице.

По-умолчанию проверяется текущая страница и текущий пользователь. Однако функции можно указать параметры:
$p - ID или URL проверяемой страницы;
$user_id - ID пользователя.

Вторая. Проверяет наличие роли у пользователя.

Данную функцию можно использовать отдельно для проверки роли пользователя.
Принимает два параметра:
$role - название роли (обязательный);
$user_id - ID пользователя, которого нужно проверить (по-умолчанию- текущий).

Обе функци так же следует поместить в конец файла functions.php вашей темы.

Проверка доступа к странице в шаблоне

Теперь у нас есть все необходимое для сокрытия страниц. Осталось добавить проверку доступа в шаблон.

Заметьте- wordpress позволяет очень гибко настраивать шаблоны страниц, поэтому вы должны понимать анатомию вашей темы.
Например: по-умолчанию используется index.php, но его может переопределить page.php для отображения статичной страницы, а single.php - когда запрошен конкретный пост. Подробнее можно почитать в документации.

Итак, что бы скрыть содержимое страницы- нужно поместить его в условие как показано на примере:

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

Понравилась статья? Поделись с друзьями:

Комментарии ()

  1. CoderWeb 20 июня 2014, 00:29 # 0
    Здравствуйте, а чем этот вариант лучше плагина?
    1. Кундиус Руслан 20 июня 2014, 00:46 # 0
      Во-первых доступ настраивается на странице редактирования поста, а не отдельной, как в большинстве плагинов.
      Во-вторых плагины реализовывают больше ненужного функционала, следовательно при них тратится больше ресурсов.

      Хотя такая реализация привязана к функционалу темы, а значит если вы меняете их как перчатки выбирая из готовых- это решение не для вас)
    2. CoderWeb 20 июня 2014, 02:10 # 0
      Спасибо))
      Категории
      События студии все
      Поздравляем, 2021 наступил! Сколько на него надежд во всем мире...
      01 Января 2021
      Поздравляем, 2021 наступил! Сколько на него надежд во всем мире...
      Наступил Новый 2021 год! Очень надеемся на то, что он будет лучше прошлого, отступит коронавирус, восстановится экономика, справится малый и средний бизнес, а государство поможет ему в этом реальной помощью!
      307 просмотров
      подробнее
      Популярное
      Последнее