Руководство по использованию плагинов пользовательских функций в WordPress
Опубликовано: 2024-03-07За десять лет работы в качестве серверного разработчика WordPress я использовал различные методы, чтобы адаптировать WordPress к своим потребностям и потребностям других. Самый распространенный из них — написание плагинов пользовательских функций WordPress. Как вы увидите ниже, это не единственный вариант и не всегда правильный.
Хотя я посвящаю этот пост разработчикам, менеджеры проектов также узнают, как эти методы соответствуют потребностям их команды, а также когда и как их использовать.
Вот методы, которые я использую для настройки WordPress:
- Добавьте свой код в файл
functions.php
темы. - Напишите плагин пользовательских функций WordPress.
- Используйте плагин для управления пользовательскими фрагментами кода.
- Бонус: необходимо использовать плагины
Давайте более подробно рассмотрим каждый из этих методов.
Добавьте код в файл function.php
В «старые» времена, когда WordPress в основном использовал PHP во внешнем и внутреннем интерфейсе, самый быстрый способ внести некоторые изменения в ваш сайт — это добавить код в файл function.php темы.
Вы все еще можете это сделать, и если осмелитесь, используйте для этого редактор файлов тем на панели управления WordPress.
Со временем мой любимый способ настройки WordPress превратился в наименее любимый.
Основная причина в том, что файл functions.php
прикреплен к теме. Если это не пользовательская тема и кто-то ее обновит, мои настройки исчезнут.
Решение — создать дочернюю тему, содержащую ваши изменения, связанные с родительской темой.
Моя основная причина, по которой я больше не добавлял столько пользовательского кода в файл functions.php
, заключается в том, что на самом деле большая часть этого кода была территорией плагинов, добавляющих функциональность сайту в целом, а не только теме.
Есть еще две ситуации, в которых я пишу собственный код в файле functions.php
:
- Код относится к пользовательской или дочерней теме.
- Тестирование быстрых изменений перед тем, как переместить их в другое место, поскольку для этого часто легко получить доступ к файлу
functions.php
.
Также имейте в виду, что файл functions.php
не подходит для размещения большого количества изменений, поскольку один файл может стать слишком сложным. Особенно, когда в моих изменениях требуется несколько файлов PHP и других типов файлов, я предпочитаю написать плагин настраиваемых функций WordPress.
Написание плагинов пользовательских функций
Как упоминалось ранее, большая часть кода, который я добавляю на свой сайт, на самом деле создает или расширяет функциональные возможности, независимые от темы.
Как только я знаю, что добавлю на сайт дополнительные настройки, я запускаю плагин пользовательских функций. Обычно он носит название сайта, как я бы назвал его для WP Mayor, плагина «Пользовательские функции WP Mayor».
Именование имеет решающее значение! Во-первых, это позволяет другим администраторам видеть, что этот плагин относится к сайту и, вероятно, вносит только изменения для него.
Во-вторых, сохранение уникальности папки и имени файла плагина предотвратит случайную перезапись вашего сайта WordPress плагином, имеющим тот же фрагмент в репозитории плагинов wordpress.org.
Создать плагин пользовательских функций WordPress очень просто. Все, что вам нужно, это один PHP-файл внутри wp-content/plugins
. Однако сначала вам следует создать новую папку, поскольку вам часто требуется более одного файла для структурирования вашего кода и вы можете захотеть добавить файлы для кода JavaScript и CSS.
Следуя нашему примеру, предположим, что теперь у нас есть папка плагина wp-content/plugins/wp-mayor-custom-functions/wp-mayor-custom-functions.php
и основной файл.
Давайте добавим заголовок в файл, чтобы сообщить WordPress, о чем наш плагин. Хотя «Имени плагина» достаточно, чтобы он работал технически, давайте посмотрим на более сложный пример:
/** * Plugin Name: WP Mayor Custom Function * Plugin URI: https://wpmayor.com * Description: All the cool features we custom-built for us. * Version: 1.0.0 * Requires at least: 6.2 * Requires PHP: 8.1 * Author: Thomas Maier */
Это уже должно отображаться в разделе «Плагины» на нашей панели управления WordPress.
Теперь мы можем пойти дальше и добавить в наш файл настоящий PHP-код.
Совет: когда у меня нет FTP-доступа к сайту или я просто ленив, я использую плагин Pluginception, чтобы быстро создать что-то, что позже можно будет заполнить кодом через редактор файлов плагинов на панели управления WordPress.
Стоит ли теперь поместить весь код для конкретного сайта в один специальный плагин с настраиваемыми функциями?
Это зависит. Когда я знаю, что пользовательский код используется в нескольких проектах, я выделяю его в отдельный плагин. При этом я собираю код, посвященный конкретному сайту, в одном плагине. Чем меньше плагинов, тем меньше репозиториев кода мне нужно поддерживать.
Звучит здорово? Что ж, управляя более крупной компанией по производству плагинов в течение последних лет и внося более сотни изменений на сайт, я заметил, что эти пользовательские плагины по-прежнему очень ориентированы на разработчиков. Итак, давайте рассмотрим другой подход в следующем разделе.
Использование плагина настраиваемой функции для фрагментов кода
Большую часть времени, проведенного в крупных компаниях по производству плагинов, я отвечал за техническую сторону нашего магазина плагинов.
Я помещаю любой код, не связанный с конкретной темой, в один плагин настраиваемой функции. Все изменения в отдельных плагинах и настройках, такие как перенаправление пустых карточек на страницу с ценами, предложения дополнительных продаж или предложения Черной пятницы, были задокументированы и распределены по различным файлам с читаемыми именами.
Что ж, «документировано» и «читабельно» для любого, у кого есть доступ к коду.
Несмотря на то, что я всегда был рядом, чтобы внести изменения или ответить на вопросы о них, я чувствовал, что это неэффективный и устойчивый способ обработки большинства пользовательских функций.
Поскольку в управление магазином и веб-сайтом вовлечено все больше и больше людей, я хотел дать им возможность узнать об изменениях без необходимости постоянно обновлять специальную страницу в нашей базе знаний.
Решением было установить плагин настраиваемых функций WordPress, который управляет всеми или большей частью фрагментов кода на панели управления WordPress.
Мой личный фаворит — бесплатный плагин Code Snippets, но есть и другие.
При использовании фрагментов кода на панели управления есть специальный пункт меню со всеми фрагментами.
Теперь любой, у кого есть доступ администратора, может увидеть изменения. Я использую описательные имена для каждого фрагмента, использую поле примечаний для его подробного описания и присваиваю теги групповым изменениям.
Мои теги обычно представляют собой название настраиваемого плагина или темы и раздел страницы, который это касается, например «WooCommerce» и «Оформить заказ».
Если вы выберете хорошие имена и хорошую структуру, каждый сможет найти и понять корректировки. Я в том числе. Я использую этот метод даже на своих личных сайтах, поскольку он очень удобен.
Использование плагина настраиваемой функции особенно полезно для фрагментов кода, которые вам нужны только временно, например, для некоторого кода очистки, который нужно запускать только один раз время от времени, или для некоторых действий, связанных с интерфейсом, таких как включение продвижения по службе.
Это безопасно?
По умолчанию WordPress позволяет любому пользователю с ролью «администратора» редактировать файлы плагинов и тем в серверной части. Использование плагина пользовательского кода ничем не отличается от этого. Таким образом, старое правило защищаться и давать каждому только необходимую роль все еще действует.
Разработчикам может быть интересно знать, что некоторые очень ранние перехватчики запроса страницы недоступны при управлении кодом через плагин, поскольку сначала необходимо загрузить сам плагин. Если вам нужно, чтобы ваш собственный код загружался раньше любого другого плагина, выберите опцию «Обязательно использовать плагины» ниже.
Пользовательские функции WordPress в плагинах, которые необходимо использовать
Так называемые плагины «Must Use» представляют собой особый вид плагинов.
Поскольку они выполняются раньше любого другого «обычного» плагина, я использую их для включения или выключения определенных плагинов для данной страницы. Вы можете использовать такой код для ускорения псевдоAPI или вызовов admin-ajax.php
.
Еще одна особенность плагинов Must Use заключается в том, что они включены по умолчанию, и никто не может отключить или изменить их через панель управления WordPress. Это делает их идеальными для важного кода, к которому не должны иметь доступ даже пользователи с правами администратора.
Создание mu-плагина
Плагины, которые необходимо использовать, размещаются в папке wp-content/mu-plugins
. Эта папка не существует в новой установке WordPress. Однако некоторые плагины или хостинговые компании могут добавлять сюда контент динамически.
Чтобы добавить новый плагин в папку mu-plugin, вам необходимо создать на своем компьютере файл PHP с заголовком файла плагина, который я показал вам выше для нашего специального плагина. На этот раз не важно выбирать уникальное имя, поскольку плагины Must Use не обновляются автоматически.
Когда вы будете довольны своим новым плагином настраиваемых функций, вручную загрузите его через FTP в папку wp-content/mu-plugins
. Создайте папку mu-plugins
если она не существует.
Хотя вы не можете изменить обязательные к использованию плагины через панель администратора WordPress, вы можете увидеть их в списке «Плагины» > «Обязательные к использованию».
В идеале плагины Must Use представляют собой однофайловые плагины. WordPress не может найти их в подпапках, хотя вы можете ссылаться на дополнительные файлы в основном файле PHP. Но если вы создаете сложный плагин Must Use, подумайте о переносе основного кода в обычный плагин и используйте плагин MU только для загрузки того, что необходимо для запуска, раньше всех остальных плагинов.
Заключение
Мы изучили различные методы добавления пользовательского кода в WordPress: от традиционного добавления кода в файл functions.php
темы, автономных плагинов и плагинов пользовательских функций WordPress до использования обязательных плагинов (mu-плагинов). Каждый метод предлагает свой набор преимуществ и потенциальных недостатков, адаптированный к различным потребностям и сценариям.
Как видите, для меня это был путь как разработчика и менеджера проекта. Я до сих пор использую все методы, в зависимости от типа изменения и того, кто должен иметь к нему доступ.
Я надеюсь, что эта статья поможет вам, моим коллегам младшим и старшим разработчикам, принять собственное решение о том, как правильно добавить код в качестве плагина настраиваемых функций в WordPress. Дайте мне знать в комментариях, если я что-то пропустил.