WordPress скрыть контент в зависимости от роли пользователя без плагина.

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

1
2
3
4
5
6
7
8
9
10
11
function content_by_user($attr, $content = null) {
$defaults = array(
'capability' => ''
);
extract(shortcode_atts($defaults, $attr));
if (current_user_can($capability) && !is_null($content) && !is_feed() ) {
return $content;
}
return 'Для просмотра данного контента необходимо приобрести подписку.';
}
add_shortcode('rolecontent', content_by_user');

А сам контент который нужно скрыть помещаем в этот код:

1
2
3
[rolecontent capability="edit_posts"]
    Контент который нужно скрыть
[/rolecontent]