Intereting Posts
get_post_meta печатает пустые поля, но это не должно быть Проверка Если автор комментариев зарегистрирован Я получаю сообщение об ошибке при загрузке тем Параметры параметров не отображаются на странице подменю в плагине WordPress. Какой пользователь должен использовать для wp-cli на Ubuntu VPS Исправьте потоковые комментарии Сценарий для удаления всех неактивных виджетов? Динамически tax_query Возможно ли полностью передать мою локальную установку на сервер? Добавить отдельный тег <hx> в заголовок виджета в боковой панели Вставить плагин на пользовательскую страницу Моя пользовательская страница настроек администратора не использует пользовательские CSS и JS даже после успешной регистрации и регистрации скриптов Ссылки на страницы не отображаются на сообщениях single.php на устройствах iOS Как проверить плагины для вредоносного кода? Ajax и автозаполнение

могу ли я ограничить редактирование определенных настраиваемых полей определенными ролями?

Я пишу плагин, который вводит неэкранированный контент (включая javascript) в сообщение. Я храню этот контент в качестве настраиваемого поля, и мне интересно, существуют ли какие-либо встроенные способы предотвращения изменения пользователем определенных настраиваемых полей.

Solutions Collecting From Web of "могу ли я ограничить редактирование определенных настраиваемых полей определенными ролями?"

Просто используйте пользовательское поле с его именем, начинающимся с _field_name подчеркивания , поэтому оно не будет отображаться в метатеге CF, например, _field_name вместо _field_name .

Он будет скрыт для всех ролей, но если вы манипулируете его значением только через код, тогда проблем нет.

Если вам нужно манипулировать значением на экране редактирования, вам понадобится настраиваемый мета-ящик и его внешний вид в соответствии с ролью пользователя.

[ update : похоже, что этот тип поля можно вводить только динамически, он выгружает ошибку, если вы пытаетесь использовать интерфейс администратора]

Без кода трудно дать вам что-то конкретное. Многое зависит от того, что вы делаете, и где вам нужно это делать.

В дополнение к тому, что предложили brasofilo, вы всегда можете обернуть отдельные блоки кода с помощью current_user_can . Например…

 if (current_user_can('administrator')) { echo "You are awesome"; } else { echo "Ha! Ha! You can't do stuff"; } 

Примечание. Страница Codex для current_user_can предостерегает от использования имени роли, но в исходной документации указано « @param string $capability Capability or role name ». Я не знаю, почему они отличаются, и у меня никогда не было проблемы с именем роли, но имейте в виду.