Intereting Posts
Добавить скрипты на персонализированный пост добавить / редактировать страницы Не работает Классы CSS для темы Есть ли PressThis, который не поддерживает хотлинк? Форматирование массива фигурных скобок из базы данных WP для получения более читаемого результата Добавление дополнительных параметров к экземпляру изображения. (Настройки экрана вложения) Удалить пользователей из нескольких пользователей после того, как они не вошли в систему на определенное количество времени? Комментарии Фид и пользовательские статусы сообщений Не удается найти конкретную ссылку / строку <a href>, используя String Translation с WPML? get_attached_media () возвращает пустой массив, если медиафайл уже используется другой почтой Как исправить количество комментариев, отображаемых для каждого сообщения? Как вмешаться в поиск по умолчанию, чтобы выполнить поиск в пользовательских полях? Добавить 'if exists' для фильтрации Удалите последние символы X настраиваемого значения поля Как использовать get_template_part всегда относительно файла, в котором я его использую? Автоматизировать конфигурацию после новой / размещенной установки

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

Я пишу плагин, который вводит неэкранированный контент (включая 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 ». Я не знаю, почему они отличаются, и у меня никогда не было проблемы с именем роли, но имейте в виду.