С версии 2.7, в WordPress было введено много нового, включая API настроек. Они позволяют с легкостью создать страницу с настройками в админ панели. С помощью этого API вы можете создавать не только страницы с настройками, а так же разделять их на секции и добавлять настройки в уже существующие настройки.
Правильная организация кода и валидация полей будет не простой задачей, но в дальнейшем это избавит вас от ненужного дебаггинга.
Для работы с API настроек вам нужно отправить POST запрос на wp-admin/options.php, который достаточно жестко проверяет права пользователей. У пользователя должна привилегия «manage_options» (в «Мульстисайте» — это «»Супер Адамин»), для сохранения настроек.
Почему стоит использовать API настроек?
Конечно же разработчик может полностью игнорировать API настроек и полностью написать всё сам. Но стоит ли это делать? Будет ли это лучшим решением? Ниже я представляю некоторые плюсы использования API настроек.
Узнаваемость
Используя API для генерации элементов, вы гарантируете что ваши настройки будут выглядеть точно так же как остальные в администраторской панели.
Вы когда-нибудь видели страницу с настройками, которая выглядит как будто-бы была создана 5-ти летним ребенком? Вероятнее всего разработчик не пользовался API настроек, а решил сделать по своему.
И благодаря талантливой команде WordPress, у нас есть API настроек, у которых стоит дизайн по умолчанию!
Думая о будущем
API — это часть WordPress ядра, тем самым каждое обновление будет автоматически поддерживаться настройками вашего плагина. Если вы разработаете что-то своё, то вероятнее всего после глобального изменения WordPress ядра может что-то перестать работать. И конечно же у нас большое сообщество, которое тестирует API настроек, поэтому даже малейшие баги устраняются достаточно быстро.
Меньше работы — больше дел
И конечно самый главный плюс WordPress API — это то, что оно делает кучу работы за вас. Вот парочку примеров того, что делают настройки API из коробки:
- Обрабатывает проверку формы — доверьте обработку
$_POST
запросов WordPress’у. - Безопасность — вы получаете дополнительный уровень безопасности, такой как nonce и прочее.
- Очистка данных — после сохранения данных, вы легко получите доступ к ним. Но данные которые вы получаете являются безопасными, потому что WordPress уже позаботился об этом.