Как часто вы сталкивались с руководствами по WordPress, в которых вам нужно было поместить фрагмент кода в файл functions.php, чтобы добавить новую функциональность к своему сайту? Я уверен, что вы с ходу вспомните такие ситуации. Если следовать устоявшейся практике, то самое лучшее решение данной задачи – это создание своего собственного функционального плагина, который позволит избежать перегрузки файла functions.php.
Веская причина, почему лучше не забивать файл functions.php – многочисленные проблемы с обновлениями и поиском неисправностей. Когда функции вашего сайта разбиты по отдельным плагинам, можно оперативно выявить и решить проблему (либо избавиться от несовместимости), поочередно отключая и подключая плагины. Если же все функции находятся в одном файле functions.php, справиться с неполадками значительно сложнее.
Облегчить вашу жизнь поможет плагин Functionality. Он призван автоматизировать создание отдельных функциональных плагинов для кода, который вы бы по обыкновению поместили в functions.php. Плагин предлагает удобный способ разделения ваших функций.
Установите и активируйте плагин, после чего у вас появится новый пункт меню Edit Functions под меню с плагинами. Теперь вы можете использовать встроенный в WP файловый редактор для быстрого редактирования вашего функционального плагина.
Преимущества использования плагина Functionality:
- Заметно упрощает диагностику вашего сайта, не требует отключения своей темы
- Функции не привязаны к теме, потому обновления темы их не затронут
- Функции останутся прежними даже в случае переключения на новую тему, поскольку они отделены от темы.
Вывод, который вы должны для себя сделать: привязывать кучу дополнительного кода к теме WordPress нецелесообразно. Отделение функций, вынесение их за пределы темы позволит в конечном счете сделать обслуживание и обновление сайта значительно проще.
Если вам нравится добавлять произвольные фрагменты кода в WordPress, этот плагин может стать обязательным для всех ваших сайтов. Загрузить плагин можно бесплатно с сайта WordPress.org.
Источник: wpmu.org
Плагин для создания плагина? Не проще ли выучить десять строк для создания плагина и перенести каждый код в них?
И по поводу файла в теме functions.php — как часто вы меняете темы? Редко? Тогда зачем городить огород?
Я использую комментирование для начала и конца функции в functions.php — потом легко найти нужный участок.
А вот если вы создаете тему вордпресса для распространения другим пользователям?
Вы каждому будете давать инструкцию — «возьми файл my_plugin_functions.php, помести его в папку плагинов вордпресса, зайди в админку…» — это бред если функция оформленная плагином не содержит настроек в админке. Проще взять тему с вписанной функцией в файле functions.php, активировав тему все заработает
Поначалу наступал на эти грабли — обновил тему и все пропало. Потом потратил очень много времени на восстановление функционала, потому думаю, что это способно помочь некоторым юзерам.
«Потом потратил очень много времени на восстановление функционала» — это много времени чтоб скопировать код из functions.php? Ведь даже используя плагины, некоторые функции вызова вам надо будет ручками вписывать в файлы темы — например в single.php вам надо будет вставить вызов количества просмотров статьи в нужный вам блок.
p.s. пожелание по блогу — сделайте кнопки цитирования, выделения жирным и т.д. для форматирования комментариев.
И второе — хочется поучаствовать в дискуссии, но у вас нет отдельной страницы последних комментариев. А будет полезно
«это много времени чтоб скопировать код из functions.php»
У меня не было под рукой сохраненных изменений, потому пришлось вспоминать, что я делал год назад и какие функции прописывал. Вот так по крупицам и пришлось восстанавливать весь былой функционал.
За предложения спасибо, посмотрю, как это лучше реализовать в пределах моей темы.
functions.php лучше не трогать вообще, обходится без него. Нужно писать зная все необходимое для этого. А главное делать копии базы, а также функционала. Так как всегда можно запороть, а вернуть может не получится если нет под рукой сохраненной копии. А вообще автоматически нечего путнего не создаш, нужно такой бред откинуть и ручками попахать.