functions.php — используем правильно
Привет. Предлагаю всем читателям сегодня еще раз вернуться к теме о внесении изменений в файл functions.php, а вернее, поговорить о том, как это следует делать правильно.
Многие пользователи добавляют сниппеты кода прямо в файл темы functions.php file, но это мягко говоря, не самая хорошая идея. Создание кастомного WordPress плагина – это часто лучшее решение проблем, связанных с добавлением кода. И это совсем не сложно.
Что такое functions.php?
Если вы когда-нибудь просматривали папки вашей инсталляции WordPress, то могли заметить, что WordPress-сайт содержит множество файлов functions.php. Functions.php, о котором я говорю сейчас, это тот, который лежит в папке с вашей темой. Этот файл содержит все функции, специфичные для вашей темы.
Почему это плохая идея — всегда использовать functions.php
Начнем с того, что скажем, что использовать файл functions.php вашей темы для добавления сниппетов кода – это не всегда плохо. Но это панацея, и вы не должны использовать этот способ везде и всегда.
Давайте начнем с причины #1:
Если вы обновите свою активную тему, то все добавленные ранее функции могут пропасть. И я уже могу предвидеть вопль в комментариях “ так для этого и есть дочерние темы”. И вы правы: дочерние темы решают эту проблему. Но далеко не все люди умеют работать с дочерними темами, зато умеют использовать для тех же целей functions.php.
Причина #2 – даже если вы правильно используете дочернюю тему для functions.php, что случится, если вам захочется сменить активную тему? Я надеюсь, вы задокументировали все, что когда-либо добавляли в ваш файл functions.php, потому что без этого, смена темы может стать большой головной болью.
Причина #3 – если вы когда-либо добавляли в ваш functions.php такой код, который приводил к полному падению инсталляции WordPress, вы знаете, что надо получить доступ к сайту по FTP, скачать ваш functions.php, удалить злосчастный код и загрузить его обратно. Это раздражает, когда есть более просто способ решить подобную проблему.
Так, когда же вы должны использовать functions.php?
Даже правильное использование functions.php в вашей дочерней теме не всегда удачная идея.
Если вы добавляете твики, которые на 100% специфичны для вашей темы, то смело добавляйте их в functions.php (в дочерней теме!!). Вот несколько примеров, когда этот способ прокатит:
- Добавление второй страницы стилей для вашей темы
- Изменение длины цитат для лучшего соответствия вашей специфичной теме
- Добавление шрифтов, которые специфичны для данной темы
- Добавление файла перевода
Базово, каждый раз, когда вы добавляете, удаляете или модифицируете что-то 100% специфичное вашей теме, то можно сосредоточиться на functions.php вашей дочерней темы.
…и когда использование functions.php – это плохая идея?
Не стоит использовать functions.php, когда вы хотите перенести любые изменения из одной темы в другую. Вот вам примеры, когда не нужно использовать functions.php:
- Создание кастомного виджета, который вы будете использовать снова и снова
- Добавление чего-то независимого от темы, типа кода Google Analytics
- Создание кастомного шорткода
В этих случаях лучше создать кастомный плагин, и поверьте мне, это не так сложно, как кажется.
Как использовать кастомный плагин вместо functions.php
Чтоб создать плагин, куда можно помещать сниппеты кода, все, что вам нужно, это сделать это:
- Создайте.php-файл с небольшим количеством предложенного мной кода
- Создайте .zip-файл, содержащий .php-файл
- Установите и активируйте плагин, как и любой другой
Да, это реально просто. Давайте начинать.
Шаг 1: создайте PHP-файл и добавьте код
Чтоб начать, откройте редактор текста, типа Блокнота. Затем добавьте этот код в чистый документ:
<?php /* Plugin Name: Colin Custom Functions */ /* Add Your Code Snippets Below This Line. Make Sure to Document What they Do With Comments Like This */ ?>
Конечно, вы можете назвать файл, как хотите. В конце концов, результат должен выглядеть вот так:
Затем, сохраните файл, как-то так: colin-custom-functions.php. Называйте, как хотите, лишь бы имя было уникальным, чтоб WordPress не перепутал его с уже установленным ранее одноименным плагином.
Если вы используете Блокнот, то при сохранении файла вам нужно выбрать Все файлы из выпадающего меню, чтоб вы могли сохранить его как файл .php:
Шаг 2: Создайте .zip файл
Теперь вам нужно создать .zip-файл, содержащий файл, который вы только что создали. Если вы используете Windows, вот как вы можете это сделать:
Шаг 3: Устанавливаем наш плагин, как любой другой
Теперь просто загрузите ваш .zip-файл, проделав путь Плагины → Добавить новый → Загрузить плагин:
После активации, вы должны увидеть его в списке ваших плагинов:
Добавление ваших сниппетов кода
Чтоб добавить сниппет кода просто прицепите их к.php файлу, который вы создали. Или вы всегда можете создать новый плагин для разделения разных категорий сниппетов.
К примеру, вот как будет выглядеть шорткод “Hello World!”:
Я также рекомендую создавать комментарии перед каждым сниппетом. Комментарии не затронут ваш код, но не дадут вам забыть, зачем нужен каждый сниппет, если вам вдруг понадобится его отредактировать.
Чтоб создать комментарий, используйте следующий синтаксис: /* ВАШ КОММЕНТАРИЙ */.
Затем вы можете загрузить файл по FTP, переписав существующий файл. Или вы можете удалить существующий плагин и установить на его место новую версию.
Как еще можно избежать использования functions.php
Если вы все же не решились еще на создание собственного плагина, то можете просто использовать плагин, который называется Code Snippets
Он позволяет добавить множество сниппетов кода, присвоить им названия и описания, а затем активировать /деактивировать каждый сниппет отдельно от других.
Также он позволяет вам импортировать/экспортировать сниппеты кода на другие сайты для копирования необходимых функций.
По теме:
Как лучше всего добавить свой код в WordPress