current_user_can() – проверяет, имеет ли текущий пользователь определённую возможность
Прежде всего, про Роли и Возможности вы можете почитать более детально в этом уроке.
current_user_can( $capability, ...$args )
Итак, функция проверяет, имеет ли текущий пользователь определённую возможность (право) и возвращает true
или false
(имеет или не имеет).
- $capability
- (строка) Возможность, которую нам нужно проверить. Таблицу со списком возможностей вы например можете найти тут.
- ...$args
- Один или несколько аргументов, которые могут понадобиться в зависимости от того, какую возможность мы проверяем, например это может быть ID поста или мета ключ (если непонятно, лучше сразу скролльте к примерам).
Пример 1. Проверяем, что текущий пользователь может редактировать записи
if( current_user_can( 'edit_posts' ) ) {
// да, может
}
Пример 2. Проверяем, что текущий пользователь может редактировать запись с определённым ID
$post_id = 5;
if( current_user_can( 'edit_post', $post_id ) ) {
// да, он может редактировать запись с ID = 5
}
Пример 3. Проверяем, что текущий пользователь может редактировать произвольное поле с определённым ключом определённой записи!
$post_id = 5;
$meta_key = 'seo_title';
if( current_user_can( 'edit_post_meta', $post_id, $meta_key ) ) {
// да, блин, может
}

Миша
Недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.
Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.
Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.