Оглавление:
Статья последний раз была обновлена 02.07.2024
Практически каждый, кто ведет блог на WordPress и самостоятельно занимается его обслуживанием, знает о существовании волшебного файла functions.php. Часто его применяют абсолютно не по назначению, что может привести к существенным проблемам. Давайте вместе более детально разберемся с этим вопросом.
Уверяю, прочитав эту статью, вы измените свое отношение к плагинам и перестанете пополнять ваш functions.php очередным сниппетом кода.
Плагины и functions.php
Многие владельцы сайтов на WordPress твердо убеждены, что плагины непременно будут нагружать и тормозить блог. А если просто добавить код в functions.php, то это никак не повлияет на нагрузку. Увы, это не совсем так…
Дело в том, что нагрузку вызывает не конкретно плагин, а его неверно написанный код, который, легко может попасть и в functions.php из очередного руководства.
Давайте посмотрим в чем главные отличия плагина и functions.php.
Плагины | Файл functions.php |
Предназначены для расширения функционала сайта | Предназначен для обслуживания конкретной темы и ее тонкой настройки (размер миниатюр, локализация темы и пр.) |
«Территория плагина» — все, что касается контента:
|
«Территория темы» — все, что непосредственно касается оформления сайта:
|
Легко активируются и переносятся на другой блог | Привязан к определенной теме WordPress и все, что туда будет добавлено перестанет работать при смене активной темы. Переносить этот функционал придется вручную каждый раз при смене шаблона |
При наличии критических ошибок не активируется или отключается | Ошибки показываются прямо на сайте или вовсе загружается пустая страница |
Если добавить код в плагин и в functions.php активной темы — он выполнится в обоих случаях с одинаковой скоростью. Единственное различие — код плагина выполнится немного раньше, а это говорит исключительно об отличии в порядке запуска |
Принципиальное отличие плагина от файла functions.php — в назначении и порядке выполнения.
Также необоснованно мнение, что код в functions.php выполнится быстрее, чем в плагине. Один и тот же код в плагине и в functions.php выполнится с одинаковой скоростью и нагрузкой.
Очень часто проблемы c высокой нагрузкой возникают из-за дополнительного функционала плагинов, а скорость загрузки сайта страдает от подключения скриптами своих стилей, скриптов и другого контента. Поэтому важного уделить внимание выбору плагина, дабы избежать проблем в будущем.
Если вы обычный блоггер и далеки от веб-разработки, то при выборе плагина обязательно обращайте внимание на отзывы в репозитории WordPress и на блогах авторов или веб-разработчиков.
Плагин как альтернатива файлу functions.php
Все дополнения, которые вы вносите в файлы шаблона (скрипты, счетчики, функции) могут быть утеряны при смене активной темы или применении обновлений для нее. Чтобы избежать этого и не создавать хаос в functions.php, предлагаю Вам воспользоваться своим личным плагином.
Давайте создадим свой плагин — альтернативу файлу functions.php. Не стоит пугаться, он будет выглядеть один в один как любимый functions.php. Все, что потребуется — просто добавить пустой плагин на свой сайт. И затем в него можно вставлять необходимый код, как раньше делали это c functions.php.
Прежде всего нам нужно создать на компьютере файл с названием functionsphp.php и добавить в него следующий код:
n"; } add_action('wp_head', 'functionsphp_head_info');
Первая часть плагина — это комментарий, который предоставляет WordPress служебную информацию о плагине — имя, описание и версию. Эти данные удалять нельзя.
Вторая часть — это функция, выводящая html-комментарий и хук-событие, запускающее выполнение нашей функции в секции
сайта.Плагин можно установить, загрузив созданный файл на сайт через FTP в директорию /wp-content/plugins/. А для установки через админ-панель, нужно запаковать этот файл в .zip архив.
Как установить плагин?
Для установки плагина через админ-панель, заходим в «Консоли» в меню «Плагины» → «Добавить новый» и нажимаем кнопку «Загрузить плагин».
В окне загрузки указываем путь к zip-архиву плагина, нажав кнопку «Выбрать файл» и затем начинаем установку кнопкой «Установить».
По завершению загрузки и установки плагина, нам предложат активировать его или перейти на страницу плагинов. Я активировала плагин.
Попадаем на страницу со списком всех плагинов и видим, что установка и активация прошли успешно.
Для демонстрации работы плагин добавляет html-комментарий в секцию head сайта. Можно проверить наличие этого комментария. Для этого переходим на сайт, нажимаем правой кнопкой мыши и выбираем меню «Посмотреть исходный код», комментарий должен отразиться. Если на сайте используются плагины кэширования, то возможно нужно будет сбросить кэш.
Как редактировать плагин?
На время редактирования плагинов, их лучше деактивировать. Если редактировать активный плагин, то при обнаружении конфликта или ошибки WordPress автоматически отключит его. А это — еще один огромный плюс в пользу плагина вместо functions.php, так как в случае последнего получим неработающий сайт и необходимость заходить и исправлять ошибку через FTP.
Чтобы отредактировать плагин, заходим в «Консоли» в меню «Плагины» → «Установленные» и под названием нашего плагина нажимаем ссылку «Редактировать».
Попадаем на страницу, которая внешне ничем не отличается от страницы редактирования файла funtions.php. Теперь сюда мы можем вставлять свой функционал (после всего текста), который обычно советуют добавлять в functions.php.
Что точно стоит добавить в свой плагин?
Далее я приведу несколько примеров, которые помогут добавить код в head или перед закрывающим тегом body, а также просто дополнительный функционал на сайт.
Добавление кода в тег head вроде Google Analytics
Чтобы подключить скрипт или вывести информацию внутри тега head, добавьте этот код с примером подключения аналитики Google. Все, что написано между символами << Эта функция подойдет, если необходимо добавить код в подвал сайта или там-же подключить скрипты и т.п. Если имеется пара-тройка шоткодов, которыми вы часто пользуетесь, можно добавить их в этот плагин. Если их много — стоит подумать о создании аналогичного плагина, содержащего только шоткоды. В примере ниже добавляется shortcode info, текст внутри которого оборачивается в тег div с классом info. Теперь всегда используйте свой плагин!
function functionsphp_googleanalytic (){
echo <<
Добавления кода перед закрывающим тегом body
function functionsphp_footertext (){
echo <<
Собственные шоткоды
function functionsphp_shortcode_info ( $atts , $content = null ) {
return '