Functions.php в Wordpress - правильное использование

Опубликовано: 23.08.2018

видео Functions.php в Wordpress - правильное использование

Как подключить скрипты и стили к Wordpress (Часть 2)

Что такое functions.php

Это главный файл в вашей теме WordPress. Располагается в /wp-content/themes/{тут название вашей темы}/functions.php.


Как добавить новые функции в functions.php WordPress - ShortCode API

В нём определяются важные свойства темы, кастомизируются хуки, внешний вид и её функциональность, а также добавляются некоторые необходимые вам функции. Этот файл загружается каждый раз при открытии любой страницы WordPress, поэтому с его помощью можно изменить любой элемент сайта. В связи с этим, многие советы а-ля « как изменить что-то в WordPress без плагинов » часто касаются именно внесения изменений в functions.php, вместо того, чтобы создать под этот функционал отдельный плагин или воспользоваться готовым решением. Зачастую это приводит к информационной перегрузке этого файла, код становится тяжело разобрать, а внести исправления ещё сложнее. Но не это самое опасное. Самое опасное — это то, что при смене активной темы пропадёт часть или весь необходимый функционал сайта .

Как применить стиль css только к одной странице

Чем отличается functions.php от плагина

Ничем. По своей сути, functions.php и есть эдакий глобальный неотключаемый плагин, который привязан к текущей теме. Как он подключается в WordPress, можно посмотреть в wp-settings.php . Как видно из исходного кода, его загрузка происходит после всех плагинов, однако, это не даёт никаких недостатков или преимуществ, разве что возможность переопределить что-то в подключенных плагинах. На скорость исполнения кода это также никак не повлияет. Влияет только содержание плагинов и functions.php. Поэтому, будьте внимательны при выборе активных плагинов для своей темы и откажитесь от ненужных, малополезных вам, тогда вы сможете облегчить ваш сайт и ускорить его работу.

Когда нужно использовать functions.php

Руководствуйтесь следующим правилом: если функционал напрямую связан с текущей темой, но не с работой сайта, записывайте его в functions.php.

К примеру, это может быть

Настройка миниатюр Установка размеров сайдбаров Настройка мест под виджеты Объявление мест под навигационное меню Настройки темы Дополнительные функции вашей темы

Когда стоит избегать использования functions.php

Если функционал должен работать даже при смене активной темы, стоит позаботиться об его вынесении в отдельный плагин.

Сюда можно отнести:

Определение счётчиков посещаемости (Google Analytiсs, Yandex.Metrika, Liveinternet) Настройка дополнительного функционала админки (например, дополнительные кнопки в текстовый редактор ) Конфигурирование исходного кода ( убрать лишнее из кода: ссылки на RSS, wlwmanifest, xmlrpc, generator, т.д. ) Определение шорткодов Регистрация произвольных типов записей и произвольных таксономий Отключение функций pingback/trackback, ревизий, JSON REST API, Emoji

Списки неполные, вы можете определить их содержание сами под себя.

Куда внести данный код, если не в functions.php? Вы можете написать специальные плагины под них, однако, есть способ интереснее и проще.

mu-plugins как альтернатива functions.php

К нам в современные версии WordPress из WordPress MU(Multi-User) пришёл интересный функционал, называемый MU Plugins . Суть его заключалась в следующем. Администратору WordPress MU порой требовалось определить плагины для всей сети сайтов. Обычным функционалом этого было не добиться, поэтому ввели специальный раздел: /wp-content/mu-plugins/, где они и определялись. Ещё что интересно, файлы плагинов из этой директории загружаются раньше всех остальных, что даёт возможность предопределить некоторые константы или настройки.

Позже WPMU упразднили, его код интегрировали с основным блоговым, и теперь любой WordPress может использовать функционал MU-plugins, который теперь расшифровывается как Must Use , то есть обязательный к использованию.

Как использовать mu-plugins

Вначале нужно создать специальный раздел /wp-content/mu-plugins/

В него мы помещаем нужные файлы-плагины. В отличие от обычных плагинов, здесь не нужно выдерживать специальный синтаксис, а функционал можно объявлять напрямую

Здесь для примера создан файл с кодом счётчиков посещаемости.

Внутри этот файл выглядит вот так

<?php add_action('wp_footer', 'sheensay_counters', 100); function sheensay_counters() { ?> // ... Вместо этой строки вставляем код счётчиков ... <?php }

В админке он будет выглядеть как Необходимые

В отличие от обычных плагинов, здесь подключаться будут только файлы, непосредственно находящиеся в разделе mu-plugins. Если вы хотите подключить файлы из подразделов, создайте загрузчик этих файлов

Создаём загрузчик файлов для mu-plugins

Допустим, у нас есть такая иерархия директорий

Создадим wp-content/mu-plugins/load.php и запишем в него

<?php require_once 'custom-mu-plugin/plugin.php';

Это всё, подключение готово.

В завершение

Помните, нельзя пихать всё подряд в functions.php, это захламляет код и создаёт опасную зависимость функционала сайта от его активной темы. Будьте разумны и выносите код сайта, который не должен зависеть от темы, в mu-plugins, он отлично подходит для этого.