Ограничить доступ к странице 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 */ }

Все это говорит, что если кто-то слышал о более прогрессивном и разумном способе сделать это, я весь слух!

Другие вопросы по тегам