Файл functions.php в теме WordPress

В большинстве тем оформления WordPress можно обнаружить файл functions.php. Он находится в корневой папке темы. Файл подключается автоматически на каждой странице сайта, в панели администирования и даже на AJAX запросах.

Этот файл хранит в себе функций, которые применяются в теме. Рассмотрим этот файл подробнее, чтобы понять какой код он хранит и какой код не стоит записывать в него.

Что стоит хранить в functions.php

В файле functions.php стоит хранить следующий код:
  • Подключение файлов темы. В том числе файлов локализации.
  • Настройки темы и дополнительные вспомогательные функции темы.
  • Изменение параметров боковых панелей.
  • Функции для вывода миниатюр.
  • Изменение параметров отображения виджетов.
  • Определение мест под меню навигации.
В файл functions.php стоит записывать только тот код, те функции, которые непосредственно связаны с текущей темой. К примеру, не стоит писать в него код, который влияет на работу панели администрирования.

Что не надо хранить в functions.php

В файле functions.php не надо хранить код, который не отвечает за текущую тему:
  • Функции для панели администрирования (добавление кнопки в панель, редактирование панели).
  • Отключение функций WordPress (к примеру, функций pingback/trackback).
  • Роли пользователей и привилегии.
  • Код виджетов.
В файл functions.php лучше писать только тот код, отключение которого при смене темы не принесёт к сбою в работе сайта. Если код не подходит для включения в файл functions.php, то стоит оформить его в виде плагина.

Белый экран после изменения functions.php

После редактирования файла functions.php может произойти неприятная ситуация - вместо сайта будет показан белый экран. Часто ошибка кроется в том, что программисты пытаются сделать вывод HTML кода непосредственно при подключении этого файла. Но так делать нельзя: необходимо помещать вывод внутрь функции и делать её вызов в других файлах темы сайта.
Файл functions.php может содержать функции, которые делают вывод (к примеру, кода HTML). Но он не может непосредственно выводить его при подключении файла. Потому что файл functions.php вызывается до установки заголовков страницы. Поэтому даже если в файле будет вывод символа пробела или переноса строки, то браузер отобразит пользователю пустую страницу.
Файл functions.php должен содержать PHP код от начала до конца.
<?php 
   // код
?>
Вывод может быть сделан в функции, но вызывать такую функцию надо в дргуом файле темы, а не в functions.php:
<?php 
   function MouseDC(){
      echo 'Hello!';
      return 1;
   }
?>
Если переживаете, что после закрывающего тега ?> останется пробел или перенос строки, то уберите весь тег. Компилятор закончит работу с окончанием файла, ошибки не будет:
<?php 
   function MouseDC(){
      echo 'Hello!';
      return 1;
   }

Временные изменения в functions.php

Существуют некоторые приёмы ремонта сайтов на WordPress, при которых используется вызов функций в файле functions.php. К примеру, если перенести сайт с одного домена на другой и забыть изменить адрес сайта в настройках через панель администрирования, то будет срабатывать перенаправленние на старый домен при попытке загрузки любой страницы сайта. Чтобы решить эту проблему, можно вызвать функции изменения адреса сайта непосредственно в файле functions.php. А так как он загружается при открытии любой страницы сайта, то при первом же срабатывании значения настроек будут изменены.

Для этого откройте файл functions.php текущей темы сайта и добавьте две строчки с функцией "update_option" в самое начало:
<?php 
update_option( 'siteurl', 'https://www.mousedc.ru' );
update_option( 'home', 'https://www.mousedc.ru' );
Где вместо "https://www.mousedc.ru" поставьте новый адрес своего сайта. Затем загрузите страницу. Адрес пропишется в настройках: исчезнет перенаправление, появится возможность войти в панель администрирования.

После совершения операции удалите обе строки с "update_option". Иначе при каждой загрузке страницы будет выполняться два бесполезных запроса к базе данных, снижая быстродействие сайта.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: