Intereting Posts
Эффективный способ запроса «резервной» почты? WP_query, чтобы получить первые два последних сообщения, затем еще один цикл, чтобы получить следующие три Сумасшедший выход WP не имеет смысла (wp_get_nav_menu_items). Кто угодно? Как фильтровать get_users () аналогично pre_get_posts? Как я могу определить, в какой категории я попал в заголовок? Добавить крестик в тег SCRIPT Не удается удалить два родных плагина WordPress Плагин Jetpack (ShareDaddy): запретить показывать общие кнопки на пользовательских типах сообщений? Проблема с WordPress wp_enqueue_style Отправляет электронную почту администратору с автором сообщения Почему слово <newline> не отображается в wordpress? Вставка больших объемов данных в пользовательскую таблицу во время установки плагина Установка wordpress в качестве сайта разработки в подкаталоге на реальном сервере * wpupdateuser * user_login в моей базе данных WordPress remove_action не работает, даже после изменения приоритета

Возможности WordPress и ограниченный доступ к категориям

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

Я создал новые роли и новые возможности в этом блоге.

У меня есть некоторые статьи, относящиеся к определенной категории, которые я хотел бы поделиться только с людьми с определенной ролью.

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

Я думаю, что лучший крючок должен быть 'template_redirect' , когда этот крючок запущен, основной запрос уже установлен, поэтому вы можете посмотреть запрошенный объект, и если у пользователя нет требуемых возможностей, вы можете перенаправить запрос где-нибудь :

 add_action( 'template_redirect', function() { if ( ( is_category( 'special-category' ) || is_singular() && has_category( 'special-category', get_queried_object() ) ) && ! is_user_logged_in() || current_user_can( 'special-cap' ) ) { wp_safe_redirect( home_url() ); exit(); } } );