Sheensay → WordPress → Functions.php в WordPress — правильное использование

Functions.php в WordPress — правильное использование

18.04.2017


  • Что такое functions.php
  • Чем отличается functions.php от плагина
  • Когда нужно использовать functions.php
  • Когда стоит избегать использования functions.php
  • mu-plugins как альтернатива functions.php
  • Как использовать mu-plugins
  • Создаём загрузчик файлов для mu-plugins
  • В завершение

Что такое functions.php

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

Чем отличается 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/
В него мы помещаем нужные файлы-плагины. В отличие от обычных плагинов, здесь не нужно выдерживать специальный синтаксис, а функционал можно объявлять напрямую

Список MU-Plugins

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

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

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

MU-Plugins  в админке

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

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

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

MU-Plugins  Loader

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

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

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

В завершение

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



Так себеНеплохоНормальноХорошоОтлично (7 оценок, в среднем: 4,86 из 5)
Загрузка...

  • Что такое functions.php
  • Как запретить обновление плагинов в WordPress
  • Как удалить поле URL (сайт) из формы комментариев в Genesis Framework
  • Как удалить поле URL (сайт) из формы комментариев в WordPress
  • Как добавить кнопку в текстовый HTML-редактор WordPress без плагинов

WordPress plugin wordpress

functions-php

Свежие записи

  • Как исправить ошибку «Обновить WordPress — В настоящий момент выполняется другое обновление»
  • Query Monitor
  • LEMP
  • Telegram
  • PHP — как проверить, что строка содержит определённое слово

Свежие записи

  • Как исправить ошибку «Обновить WordPress — В настоящий момент выполняется другое обновление»
  • Query Monitor
  • LEMP
  • Telegram
  • PHP — как проверить, что строка содержит определённое слово

Свежие комментарии

  • Sheens к записи Как добавить сайт в Яндекс Дзен
  • Olga Sharzhanova к записи Как добавить сайт в Яндекс Дзен
  • Sheens к записи Как добавить сайт в Яндекс Дзен
  • Арт к записи Как добавить сайт в Яндекс Дзен
  • Sheens к записи Как добавить сайт в Яндекс Дзен
  • Telegram
  • Вконтакте
  • Facebook
  • Twitter
  • Google+
  • Одноклассники
  • Мой Мир Mail.ru
  • RSS

Copyright © 2023 · Sheensay & Genesis Framework · WordPress · Войти