Data Components - korobochkin/wp-kit GitHub Wiki

Data Components works with data. WP Kit включает в себя набор классов для Options (+ Settings), Transients and PostMeta. Все они схожи с друг другом, но имеют свои отличительные особенности обусловленные их дизайном и назначением.

Subsections

Key issues which DataComponents solves

Options, Transients and PostMeta это потрясающие части WordPress, которые дают разработчикам множество возможностей и позволяют хранить большое количество данных не прибегая к созданию новых таблиц в базе данных. Но работа с этими данными достаточно слабо организована и стандартизированна в WordPress. Сталкиваясь с ними при разработке, нередко код становится сложным и непонятным. WP Kit предоставляет дополнительные потрясающие возможности для работы с этими данными, чтобы сделать вашу работу удобнее, а продукты более надежными и дружелюбными для пользователей.

1. Проверка данных (sanitizing). Осуществлять проверки любых данных в WordPress непростая задача. Все что предоставляет нам ядро WordPress это функция is_email(). WP Kit стандартизирует валидацию данных, генерацию и вывод ошибок. 40+ валидаторов для любых типов данных уже готовы к использованию.
👉 Validation and Constraints

2. Значения по умолчанию. Каждая настройка должна иметь значение по умолчанию. В WordPress вы каждый раз должны указывать значение по умолчанию в десятках мест в своем коде.
👉 Default values

3. Типы данных. После сохранения boolean и integer преобразуются в string. Это обусловлено дизайном базы данных, но при работе ужасно неудобно.
👉 Data Transformers

4. Системность и порядок. Как часто вы видели плагины, которые удаляют за собой все настройки? Это сложно сделать, потому что использование options и других данных разбросано в десятках мест в коде. Нужно постоянно вспоминать, как назывался ключ, для получения данных и писать их вручную — это неудобно.

The key difference between Options, Transients, PostMetas, TermMetas

Options

Options и Settings предназначены для работы с опциями, доступ к которым обычно осуществляется с помощью функций update_option(), get_option() и delete_option().

Settings работают в связи с Options и предназначены для связки Options с WordPress Settings API. По факту они дают возможность дополнительно задать option group, что делает работу с Options еще удобнее если вы позволяете изменять их на страницах настроек вашего плагина.

Transients

Transients в отличие от Options работают с транзиентами. Их отличительная особенность от Options в том, что они имеют время экспирации. Вы могли сталкиваться с временем экспирации при вызове функции update_transient(mixed $value, int $expiration). Здесь помимо самого значения мы привыкли передавать время экспирации в качестве второго аргумента. Похожая механика может быть использована и при работе с объектами Transients.

PostMetas

PostMetas созданы для работы с дополнительной информацией постов. В отличие от Options и Transients, где для сохранения или получения значения достаточно указать название (имя), в PostMeta необходимо дополнительно задать ID поста, с которым вы работаете.

TermMetas

TermMetas созданы для хранения дополнительной информации о ваших категориях и тегах. Также как и PostMetas требуют указания ID вашего term object. Работают в WordPress 4.4 и выше (потому что WordPress добавил этот тип данных лишь в этой версии).

⚠️ **GitHub.com Fallback** ⚠️