Наплодить тысячу и один запрос
И в добавок сожрать кучу памяти и процессорного времени на аллокацию сущностей
Тут вопрос не в «пойдёт» и не в поменять так, чтобы кому-то понравилось. Тут вопрос в
понимании происходящего, понимании того, что вы делаете. Поэтому я не предложил исправление, пушо это вряд ли бы дало какой-либо выхлоп. В данном случае абсолютно не имеет значения как тот запрос собран, в него не вставляется пользовательский ввод. Это больше вопрос хорошего тона. Оно просто выглядело как слепленное как попало, либо случайно по тупняку, и забыли исправить, либо просто без понимания как эти вызовы работают.
Вы можете реализовать это, не используя прямые запросы к базе. И пихать в запрос переменные - плохая идея, откажитесь от неё навсегда.
А вы предложили полностью поменять алгоритм, причем в сильно худшую сторону. Причину вам уже описали. Пожалуйста, думайте когда пишете такое, запросы в циклах без какой либо логики, которая касалась бы конкретного вхождения в список - это прям редфлаг.
Касаемо прямого текста вместо фразы.
Точки в заголовках фраз используются движком для группировки. Если правильно помню, то движок при использовании одной фразы из группы, будет вгружать в память всю группу (могу вообще целиком выдумывать это, но вроде оно так работало), если вы все фразы в аддоне так префиксовать будете, то никакой пользы от этого не будет. Если только одну фразу - тоже. Этому есть конкретное применение, например фразы, которые движок генерирует для префиксов, или заголовков виджетов.
А intval из функции можно убрать вовсе.
Валидно. Ещё поправка, в общем случае лучше использовать
(int)
, чуточку быстрее, потому что это не вызов функции, от интвала есть толк только если юзать второй его аргумент.