Intereting Posts
Ограничить поиск определенной папкой на веб-сайте Почему я получаю «вызов неопределенной функции curl_init ()», когда я пытаюсь использовать плагин «Общительный»? Проверьте, находится ли сообщение в проекте или в ожидании проверки? Петля возвращает только 1 результат Как запрашивать сообщения (в иерархическом пользовательском типе сообщений), в которых есть дети? как фильтровать каждый элемент тега? Собственные пользовательские теги / категория (сообщения) Добавление CSS в администратор Редактор TinyMCE для пользовательской кнопки Восстановление пароля на странице получать случайных пользователей каждый раз на основе мета-ключа Многочисленные петли WordPress в домашней оптимизации Запрос удаленного кэша (HTTP) с API Transients Рекомендуемый способ удаления ожидающего запроса (в pre_get_posts)? Измените мета-описание, но для одного файла a: ошибка с проблемами с изображением

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

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

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