Ограничить доступ к странице Wordpress в зависимости от роли или возможностей
Как я могу ограничить доступ к определенной странице Wordpress в зависимости от роли или возможностей пользователя? Я знаю, что есть различные плагины, которые могут достичь этого, и я нашел несколько очень старых решений во время поиска в Google.
Я полагаю, что пришло время иметь современное решение, которое работает.
1 ответ
Как я пытался объяснить в комментариях после моего ответа на недавний ваш вопрос, и как указано в разделе " Ресурсы разработчика " в нижней части ваших связанных документов, current_user_can
насколько мне известно, это наиболее гибкий и всесторонний способ тестирования пользовательских возможностей с учетом замены (2.0) и устаревания (3.0) пользовательских уровней.
Если вы разрешаете или ограничиваете доступ к просмотру страницы или вносите конкретные изменения, имеет смысл связать с возможностями, уже определенными Wordpress, как связанные с ролями. Это становится особенно актуальным, когда вы используете любые виды определения ролей, редактирования возможностей, или супер- плагины или функции администратора. Это также беспрепятственно для приложений в индивидуальной или многопользовательской установке и охватывает весь спектр возможных пользователей.
Когда вы проверяете, может ли текущий пользователь сделать то или иное, эти возможности с гораздо меньшей вероятностью изменятся, чем те, которые связаны с определенными ролями или уровнями пользователя.
Все, что вам нужно знать о current_user_can
довольно хорошо объяснено в документах, и, как правило, следует этой логике:
if ( current_user_can('do_something_pertaining_to_the_below') ) {
echo 'You are a user who can do the above thing, so do the below thing';
/* the thing */
}
Наоборот:
if ( !current_user_can('some_fancy_capability') ) {
echo 'No can do';
return;
}
else { /* the similarly fancy, restricted thing */ }
Все это говорит, что если кто-то слышал о более прогрессивном и разумном способе сделать это, я весь слух!