Шорткод доступа к содержимому для пользователей с определенными правами

Часто бывает нужно, чтобы определенное содержимое было видно пользователям только с определенными правами. Например, администратору удобно оставлять заметки для авторов со своими рекомендациями, либо показывать определенным пользователям объявления. Это можно сделать с помощью шорткода, в котором можно указать уровень доступа к содержимому.

Чтобы создать такой шорткод, откройте файл functions.php, и добавьте в него следующий код:

[code

]
add_shortcode( 'acodeess', 'acodeess_check_shortcode' );
function acodeess_check_shortcode( $attr, $content = null ) {
	extract( shortcode_atts( array( 'capability' => 'read' ), $attr ) );
	if ( current_user_can( $capability ) && !is_null( $content ) && !is_feed() )
		return $content;
	return '';
}

Теперь можно в постах и на страницах использовать шорткод:

[acodeess capability="publish_posts"] Этот текст увидят только те, кто может публиковать записи [/acodeess]

В этом примере показан шорткод, с помощью которого можно выводить текст, который увидят те, кто может публиковать записи, то есть пользователи с правами не меньше автора. Уровень доступа задается аргументом capability. Правильно подобрать возможности, которыми обладают пользователи с разными правами, поможет пост Роли и уровни пользователей в WordPress – вы можете использовать из него сводную таблицу возможностей пользователей с разными правами. Если же вы не укажете в шорткоде атрибут capability, то по-умолчанию его содержимое будет доступно пользователям, которые могут читать записи (read), то есть всем зарегистрированным.

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

Оставьте первый комментарий

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*