Intereting Posts
Пользовательский тег заголовка для каждой страницы в разбивке на страницы? Изменение пользовательских страниц управления пользователями Добавить пользовательское поле во все сообщения определенной категории Перечислите таксономию в настраиваемом типе сообщений Выберите уникальные сообщения для списка тегов Обнаружение, если я нахожусь на одной странице без должности, а не на главной странице? Как редактировать профиль пользователя во фронте? Как использовать Twig + Timber с несколькими циклами на основе значения мета-ключа Экран короткого кода CPT Query показывает только 1 сообщение? Подписка на подписку, изменение роли пользователя при завершении подписки Как отсортировать WP_User_Query с помощью display_name ПОСЛЕ того, как запрос уже запущен? Удалить значение функции пользовательской почты Невозможно захватить информацию об авторе за пределами цикла Исключить некоторые фотографии в медиа-библиотеке название раздела идентификатора сайта?

Узнать, если зарегистрированный пользователь не является подписчиком

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

Solutions Collecting From Web of "Узнать, если зарегистрированный пользователь не является подписчиком"

<?php global $current_user; // Use global get_currentuserinfo(); // Make sure global is set, if not set it. if ( ! user_can( $current_user, "subscriber" ) ) // Check user object has not got subscriber role echo 'User is a not Subscriber'; else echo 'User is a Subscriber'; ?> 

Еще более простой способ, чем @Brady показал, что вы используете current_user_can :

 if ( current_user_can( 'subscriber' ) ) echo "Hi, dear subscriber! Glad seeing you again!"; 

MU

Существует также эквивалент для установок MU с именем current_user_can_for_blog :

 global $blog_id; if ( current_user_can_for_blog( $blog_id 'subscriber' ) ) echo "Hi, dear subscriber! Glad seeing you again on this blog!"; 

За занавесом

Рассматривая источник функций для одиночных или MU-инсталляций , вы увидите, что оба они в основном полагаются на wp_get_current_user() а затем выполняют проверку на has_cap . Теперь, если вы хотите увидеть, откуда берет кепку, в WP_User class / object.

Другие участники этого набора

Тогда есть также author_can( $GLOBALS['post'], 'capability' ); , Все эти функции находятся внутри ~/wp-includes/capabilities справа друг от друга.

Когда использовать что?

Теперь, где разница между current_user_can(_FOR_BLOG) и user_can ?

  • user_can() является более новым (начиная с версии 3.1), но требует пользователя как объекта. Таким образом, вы можете использовать его в случаях, когда вы не хотите настраивать таргетинг на текущего пользователя, но на некоторых пользователей.
  • current_user_can_*() очевиден.
  • author_can() позволяет проверять возможности объекта post. Этот объект доступен только для сообщений, которые уже находятся в БД. Таким образом, это главным образом для разрешения / отказа в доступе к определенным функциям сообщения.

Это то, что вы имеете в виду?

 global $userdata; get_currentuserinfo(); if ( $userdata->user_level != 0 )//check user level by level ID { echo 'User is a not Subscriber'; } else { echo 'User is a Subscriber'; } 

Подробнее о ID для разных уровней: http://codex.wordpress.org/Roles_and_Capabilities#User_Levels

Существует также функция current_user_can (), которая позволяет вам обозначать конкретные возможности для большей гибкости. http://codex.wordpress.org/Function_Reference/current_user_can