Где разместить пользовательские функции?
Сразу к вопросу: Похоже, что есть только так много мест для размещения пользовательского кода: functions.php, плагин, шаблон, шорткод. Наличие слишком большого количества плагинов замедляет время загрузки, увеличивая functions.php файл может стать неуправляемым, то же самое с шаблоном, и короткие коды действительно зависят от ситуации.
У меня есть домашняя страница с большим количеством пользовательского кода и запросов на ней: последние комментарии, самый популярный контент, самый любимый контент, рекомендуемый контент, пользовательский слайдер избранного контента, новейших сообщений и т.д.
Это создает загроможденную домашнюю страницу, когда я пытаюсь внести изменения в код.
Я использовал короткие коды для многих запросов, но у меня все еще остается загроможденная страница. Мои плагины исчерпаны (39 активных), и мои функции также достаточно заполнены. Я загружаю много пользовательского кода на свой сайт, но мне любопытно, что вы думаете о наилучшем способе организации всех ваших пользовательских функций. Как вы выбираете между размещением ваш код в functions.php против того, чтобы сделать его плагином? Существуют ли способы расширения functions.php чтобы вам не пришлось увеличивать количество подключаемых модулей и вы могли лучше организовать свои пользовательские функции?
1 answers
Организуйте свой код по его назначению: если он создает вывод на интерфейсе и требует изменений в таблице стилей вашей темы - он принадлежит теме. Вам не нужно помещать все в functions.php
, разделите код на несколько файлов, если это поможет.
Например, вот так:
// extra functions just for nav menus
locate_template( 'php/functions.nav-menu.php', TRUE, TRUE );
Если он должен пережить переключение темы (пользовательские типы сообщений, короткие коды) или вообще не связан с темой - он принадлежит плагину.
Чистое количество плагинов не имеет значения: 200 быстрых плагины лучше, чем один медленный плагин.
Файлы шаблонов предназначены для представлений - они не должны содержать определения функций, которые там трудно найти. А шорткоды - это специальный API, а не места.