Если текущий пользователь является администратором или редактором

Как я могу проверить, является ли текущий зарегистрированный пользователь администратором или редактором?

Я знаю, как делать каждый особый

<?php if( current_user_can('editor')) { ?> stuff here for editors <?php } ?> <?php if( current_user_can('administrator') { ?> stuff here for admins <?php } ?> 

Но как мне работать вместе? То есть. пользователь является администратором или редактором?

Solutions Collecting From Web of "Если текущий пользователь является администратором или редактором"

Первый ответ, а не WordPress, потому что это всего лишь PHP, используйте логический оператор «OR»:

 <?php if( current_user_can('editor') || current_user_can('administrator') ) { ?> // stuff here for admins or editors <?php } ?> 

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

 $user = wp_get_current_user(); $allowed_roles = array('editor', 'administrator', 'author'); <?php if( array_intersect($allowed_roles, $user->roles ) ) { ?> //stuff here for allowed roles <?php } ?> 

Однако current_user_can может использоваться не только с именем роли пользователя, но и с возможностями. Таким образом, как только редакторы и администраторы могут редактировать страницы, ваша жизнь может быть проще проверять эти возможности:

 <?php if( current_user_can('edit_others_pages') ) { ?> // stuff here for user roles that can edit pages: editors and administrators <?php } ?> 

Посмотрите здесь, чтобы узнать больше о возможностях.

 <?php if( current_user_can('editor')) : echo "welcome"; elseif( current_user_can('member')) : echo "welcome"; else : wp_die("<h2>To view this page you must first <a href='". wp_login_url(get_permalink()) ."' title='Login'>log in</a></h2>"); endif; ?>