Ответы:
Еще более простой способ, чем показывал @Brady, это использование current_user_can
:
if ( current_user_can( 'subscriber' ) )
echo "Hi, dear subscriber! Glad seeing you again!";
Есть также эквивалент для установок 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
класс / объект входит в игру.
Тогда есть также author_can( $GLOBALS['post'], 'capability' );
. Все эти функции находятся ~/wp-includes/capabilities
прямо под друг другом.
Теперь, где разница между current_user_can(_FOR_BLOG)
и user_can
?
user_can()
является более новым (с 3.1), но нуждается в пользователе как объект. Таким образом, вы можете использовать его в тех случаях, когда вы не хотите ориентироваться на текущего пользователя, а на некоторых пользователей.current_user_can_*()
очевидно.author_can()
позволяет вам проверять возможности почтового объекта. Этот объект доступен только для сообщений, которые уже находятся в БД. Так что это в основном для разрешения / запрета доступа к определенным функциям сообщений.Это то, что вы имеете в виду?
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';
}
Подробнее об идентификаторах для разных уровней: http://codex.wordpress.org/Roles_and_Capabilities#User_Levels
Существует также функция current_user_can (), которая позволяет вам обозначать определенные возможности для большей гибкости. http://codex.wordpress.org/Function_Reference/current_user_can
To maintain backwards compatibility with plugins that still use the user levels system (although this is very much discouraged), the default Roles in WordPress also include Capabilities that correspond to these levels. User Levels were finally deprecated in version 3.0.
current_user_can()
страницы кодекса AFAIK не изменился.