t00rt
@t00rt

Как хранить таксономии?

Есть множество таксономий, сейчас храню их данные в опциях в сериализованном массиве.
В файле function.php получаю этот массив и регистрирую все таксономии.

Есть понимание что это не правильно. Как сделать регистрацию таксономий правильно?
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 2
@cema93
WordPress разработчик
Думаю, что точного ответа никто не даст.
Правильность состоит из:
1) нагрузка на сервер
2) удобство поддержки

Если проект очень нагруженный, то я бы отдавал предпочтение первому пункту.
Тогда я бы попробовал их инициализировать разными способами и смотрел какой дает меньшую нагрузку
Ответ написан
Комментировать
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Хранить конфигурацию таксономий в опциях - пожалуй, самое странное решение из возможных. Минусы (предполагается, что autoload=yes, потому как таксономии регистрируем при каждом запросе) могут быть неочевидны на первый взгляд, но с точки зрения производительности они существенны, а иногда критичны. Автозагрузочные опции грузятся одним пакетом в $all_options. И кешируются. Далее, если есть object cache, то все это кешируется одним куском. А тот же memcached имеет определенные лимиты на объем данных. Превысили лимит - получили проблемы. Далее, вы каждый раз десериализуете данные и работаете с массивами. В последних версиях PHP десериализация вполне быстрая (igbinary правда все равно быстрее), но вы это делаете каждый раз, без острой на то необходимости. Тот же массив в виде обычного array в PHP-файле во-первых не десериализуется, во-вторых скомпилен в байткод посредством Opcache.

Самый главный вопрос - зачем вообще это хранить в опциях? Какую проблему / задачу вы этим пытались решить?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы