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

Содержание

Вся правда о functions.php — WP Magazine

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

Что такое functions.php

Если вы хоть раз открывали исходный код любой темы для WordPress, вероятно вы сталкивались с файлом под названием functions.php.

Файл functions.php

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

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

К сожалению многие уроки WordPress в сети Интернет (серии «без плагинов») предлагают вставлять блоки кода именно в файл functions.php активной темы, потому что редактировать этот файл легче, чем создавать новый плагин, особенно через редактор файлов в панели администрирования WordPress.

Редактор файлов темы в WordPress

Таким образом после прочтения серии подобных уроков, файл functions.php становится огромным и нечитаемым, а при смене активной темы пропадает часть функционала, которая вовсе не относится к внешнему виду сайта.

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

Если коротко — то ничем.

Если взглянуть на порядок загрузки ядра WordPress в файле wp-settings.php, то мы увидим что файл functions.php активной темы загружается немного позднее всех активных плагинов, но данный порядок не дает каких-либо преимуществ или недостатков. А содержание файла functions.php и файлов плагинов подключаются и выполняются идентичным образом.

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

Мифы о производительности functions.php

Некоторые источники утверждают, что functions.php работает быстрее чем плагины, и иногда даже советуют переместить код из файла плагина в файл functions.php для его «ускорения». Это неправда.

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

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

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

Как было сказано ранее, файл functions.php предназначен для функционала, связанного с темой или внешним видом сайта. Ниже представлен список примеров того, что следует писать именно в файле functions.php:

  • Установление ширины содержимого в WordPress
  • Объявление доступных разделов для виджетов в теме
  • Установление пути к файлам локализации темы
  • Объявление поддержки миниатюр и их размеры
  • Объявление поддержки навигационного меню в теме
  • Подключение требуемых скриптов и стилей для темы
  • Подключение стилей темы для визуального редактора
  • Создание раздела с настройками темы
  • Создание дополнительных элементов управления в конфигураторе темы
  • Дополнительные функции используемые в шаблонах темы

Список далеко не исчерпывающий, но дает понять какого рода функционал стоит хранить в файле functions. php. Для контрастности приведем короткий список сниппетов, которые

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

  • Код счетчиков Google Analytics или Яндекс.Метрики
  • Произвольные типы записей или таксономии в WordPress
  • Дополнительные скрипты и стили, не связанные с темой
  • Дополнительные роли и привилегии
  • Код для вставки рекламных баннеров в содержимое сайта
  • Отключение RSS лент
  • Скрытие версии ядра WordPress (этого делать вообще не стоит)
  • Скрытие верхнего меню администрирования WordPress
  • Отключение ревизий записей
  • Отключение функций pingback/trackback
  • Любые шорткоды

При столкновении с очередным отрывком кода, попробуйте задать себе простой вопрос — что произойдет при смене активной темы в WordPress? Если ваш ответ «перестанут работать счетчики посещаемости», «пропадут все произвольные типы записей», и т.д. то данный отрывок лучше хранить в виде плагина.

Как создать свой плагин

Для многих начинающих WordPress разработчиков тема создания собственных плагинов является сложной.

Действительно для написания хорошего комплексного плагина для WordPress потребуется немало усилий и знаний в программировании, но, если вам нужно лишь вставить небольшой отрывок кода, то для этого подойдет и простой короткий плагин:

<?php
/**
 * Plugin Name: Моя альтернатива файлу functions.php
 */

// Ваш код здесь

Сохраните этот файл под названием my-functions.php и разместите его в директории wp-content/plugins. После этого перейдите в раздел Плагины в панели администрирования WordPress и активируйте его.

Собственный плагин для WordPress

Также советуем не хранить все сниппеты в одном единственном плагине, а разбивать их на более мелкие отдельные плагины, чтобы с ними было удобнее работать.

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

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

В WordPress есть специальный вид плагинов, которые называются «must use» или mu-plugins. Эти плагины активны по умолчанию, и деактивировать их через панель администрирования возможности нет. В mu-plugins также отсутствует требование к заголовку PHP файла (Plugin Name и т.д.), поэтому код можно писать сразу после открытия тега <?php.

Подобные плагины необходимо размещать в директории wp-content/mu-plugins. Если такая директория у вас отсутствует, вы можете ее создать.

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

Так что в следующий раз, когда вы наткнетесь на статью про WordPress из серии «как сделать … без плагинов», не спешите вставлять код в файл темы functions.php — возможно данный код имеет смысл хранить именно в виде плагина.

Как (безопасно) добавить код в functions.php в WordPress

Поиск интернета для решения проблем WordPress неизбежно приведет вас к сайтам, которые просят вас вставить какую-то часть кода или функцию в functions. php. Если вы новичок в WordPress, это может быть запутанной вещью. По умолчанию WordPress не имеет никакого очевидного интерфейса для ввода кода. И кроме того … копирование/вставки в вашу установку опасно. В этой статье мы покажем вам, как безопасно установить код в файл functions.php WordPress. Поехали.

Что такое functions.php, и разве это опасно?

Вы, наверное, уже знаете, что WordPress имеет темы. Каждая из этих тем находится внутри собственной папки или каталога. И каждая папка содержит файл под названием «functions.php». Это специальный файл, содержащий специфический PHP-код.

Но это тоже опасно!

Несмотря на свою ценность, function.php является опасным файлом. Причина в том, что это связано с вашей темой. Если в коде есть синтаксическая ошибка, она может отключить саму тему и сделать ваш сайт недоступным. Так что будь осторожен! Мы также покажем вам, как избежать ошибок при вставке кода.

Шаг 1. Найдите функцию functions.php в вашей теме.

Войдите в панель инструментов WordPress и перейдите в «Внешний вид-> Редактор», как показано ниже:

Это приведет вас к странице, где вы можете редактировать свои файлы тем.  Эти файлы перечислены в правой части. Текущая тема выбрана по умолчанию. Найдите файл с надписью «Тематические функции» и нажмите на него, как показано ниже:

Шаг 2: Убедитесь, что нет закрытия тега ?>

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

?>

 

Старый способ состоял в том, чтобы гарантировать, что каждый файл php заканчивается тегом ?>. Но это привело к проблемам, когда люди случайно покинули пустую строку или даже пространство после этого, и это сломало бы их сайт. Было также очень сложно отлаживать.

Поэтому перед изменением function.php, убедитесь, что он не заканчивается ?>. Если он не удалит его.

Шаг 3: Форматирование кода

Старые сайты или те, кто придерживается старых стандартов WordPress PHP, могут сделать несколько ошибок в своем коде. Поэтому скопируйте код со своего сайта, вставьте его в текстовый редактор, например «Блокнот», и внесите следующие изменения:

  1. Удалите любой открытый код <?php
  2. Удалите замыкающий код ?>

В основном убедитесь, что код, который вы копируете, не заключен в теги <? Php и?>.  Если это так, у вас возникнут проблемы, и ваш сайт выйдет из строя, потому что мы удалили тег закрытия?> На шаге 2.

Когда ваш код будет чистым, мы готовы вставить его!

Шаг 4: Вставка кода в functions.php

Прокрутите весь путь до текстового поля Шаг 1 с параметром «functions.php», выбранным с правой стороны. Теперь вставьте свой код внизу, как показано ниже:

Повторить (потому что это так важно), убедитесь, что нет закрывающего?> Тега! Теперь сохраните изменения, и вы успешно добавили код в functions.php в WordPress! Вот результат кода, который мы только что добавили на этом шаге, в качестве примера:

Лучшая практика

Вот несколько примеров:

Доступ из cPanel

Несмотря на то, что мы показали вам, как получить доступ и изменить functions.php изнутри WordPress, мы предлагаем вам сделать это из вашего файлового менеджера cPanel. Найдите свою установку WordPress и перейдите в следующее место:

[Папка WordPress] -> wp-content-> themes-> [папка темы] -> functions. php

Теперь вы можете щелкнуть правой кнопкой мыши и отредактировать функции.php. Причина, по которой мы рекомендуем делать это, — это то, что вы можете отменить изменения, если ваш сайт выйдет из строя!

Используйте пользовательский плагин для WordPress Code

Для этого требуется отдельный учебник сам по себе. Но идея состоит в том, что вы создаете свой собственный отдельный плагин для специального кода WordPress вместо того, чтобы вставлять его в functions.php. Таким образом, если что-то пойдет не так, WordPress может просто отключить плагин, а не разбивать ваш сайт!

Мы надеемся, что это полезный учебник для вас о том, как безопасно вставлять код в functions.php в WordPress!

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Что такое файл functions.php в WordPress?

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

Например, тема WordPress может добавить немного кода в файл functions.php темы, чтобы добавить новую область виджетов в нижний колонтитул или добавить пользовательское приветственное сообщение на панель управления WordPress. Возможности безграничны!

Файл functions.php автоматически загружается при установке и активации темы на вашем сайте WordPress.

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

Где находится файл functions.php?

Файл functions.php находится в папке вашей темы.

Если вы хотите добавить фрагмент кода на свой сайт WordPress, добавьте его в файл functions.php — это один из вариантов.

Но обычно это не лучший способ. WordPress пытается разделить дизайн и функциональность, когда это возможно. По этой причине у нас есть темы, определяющие дизайн, и плагины, определяющие функции.

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

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

Если вы решите отредактировать файл functions.php, будьте предельно осторожны. Вот 3 причины, по которым редактирование файла functions.php не является хорошей идеей:

  • Изменения в файле functions.php будут потеряны при обновлении темы.
  • Изменения будут потеряны, если вы измените тему WordPress.
  • Ошибки кода в файле функций могут заблокировать доступ к вашему сайту.

Даже такая простая вещь, как отсутствующая точка с запятой, может привести к тому, что весь ваш сайт исчезнет с ошибкой, называемой «Белый экран смерти». Если это произойдет с вами, мы написали пошаговое руководство о том, как исправить белый экран смерти WordPress, чтобы вы могли восстановить доступ к своему сайту.

Ошибка кодирования в файле functions.php также может привести к другим ошибкам WordPress.

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

Лучший способ добавить пользовательские фрагменты кода в functions.php

Итак, если вам не нужно редактировать functions.php, куда вы должны добавлять фрагменты кода из онлайн-руководств?

Самый простой способ — использовать WPCode, мощный плагин для фрагментов кода WordPress, который упрощает добавление пользовательских функций WordPress с помощью фрагментов кода без редактирования файла functions. php вашей темы.

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

Например, есть готовые фрагменты, которые помогут вам обеспечить безопасность вашего сайта WordPress, позволят загружать изображения SVG, выбирать редактор WordPress и отключать комментарии.

После установки и активации плагина вы можете перейти на страницу фрагментов кода и нажать кнопку «Добавить новый», чтобы создать свой первый фрагмент кода в WordPress.

Вы попадете на страницу «Добавить фрагмент».

Здесь вы можете выбрать фрагмент кода из готовой библиотеки или добавить собственный код.

Вам нужно начать с ввода заголовка для вашего пользовательского фрагмента кода, а затем вставить фрагмент кода в поле кода.

Не забудьте также выбрать правильный тип кода в раскрывающемся меню справа.

Чтобы узнать больше о том, как использовать WPCode, ознакомьтесь с нашим руководством по добавлению пользовательских фрагментов кода в WordPress.

Мы надеемся, что эта статья помогла вам узнать все о файле functions.php в WordPress и о том, как добавить фрагменты кода на свой сайт! Ознакомьтесь с дополнительной литературой ниже, чтобы узнать больше.

Вы также можете подписаться на наш канал YouTube для просмотра пошаговых видеоруководств по WordPress и следить за нами в Twitter и Facebook, чтобы быть в курсе последних обновлений.

Дополнительные показания
  • Как легко добавить пользовательский код в WordPress (без нарушения работы сайта)
  • Как добавить код верхнего и нижнего колонтитула в WordPress (простой способ)
  • 15 полезных приемов настройки WordPress, о которых вы могли не знать
  • Руководство для начинающих Вставка фрагментов из Интернета в WordPress
  • Плагин WordPress и файл Functions.php (что лучше?)
  • Как WordPress на самом деле работает за кулисами (инфографика)
  • 32 Чрезвычайно полезные приемы для файла функций WordPress

Полное руководство по файлу functions.

php WordPress

Если вы начали создавать свою собственную тему или, возможно, даже создавать дочернюю тему для настройки другой темы, то вы узнали все о файлах шаблонов и теме. иерархия шаблонов. А как насчет файла functions.php темы ?

Файл функций — это место, где вы размещаете все функции, необходимые вашей теме, которые не относятся только к одному шаблону, поэтому это не код, который выводит только один тип контента или контент только в одном месте на странице, например боковая панель или нижний колонтитул.

Кодекс WordPress определяет файл функций следующим образом:

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

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

Но это не очень хорошая идея.

Если у вас есть много функционального кода, который нужно использовать на вашем сайте, или вы хотите, чтобы этот код продолжал работать при смене темы, вам следует поместить его в плагин. Но если этот код зависит от темы, то functions.php — правильное место для его размещения. Общее правило:

Используйте  functions.php

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

Напишите плагин, если  функциональность более сложная или когда дополнительные функции не зависят от темы. Примером может служить регистрация типов сообщений — вы не хотите потерять свои типы сообщений, если в будущем измените темы.

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

Мы рассмотрим:

  • Общее использование файла функций
  • Добавление кода в файл функций и его активация
  • Создание файла функций
  • Добавление часто используемого кода в functions.php
    • Добавление поддержки темы
    • Добавление файла перевода
    • Регистрация меню навигации
    • Собираем все вместе
  • Включая файлы
  • Работа с родительской и дочерней темами
    • Подключаемые функции
    • Деактивация функций
    • Использование приоритета функции
  • Файл функций — ваш друг

Общие способы использования файла функций

Принимая во внимание, что файл функций предназначен для кода, зависящего от темы (т.  е. который будет потерян при смене темы), есть несколько конкретных примеров, когда добавление в него кода особенно полезно. К ним относятся:

  • Добавление поддержки тем, например, для избранных изображений, форматов сообщений и ссылок RSS
  • Сообщение WordPress о местонахождении файла перевода темы
  • Регистрация местоположений для меню навигации, чтобы пользователи могли добавлять меню через экран администратора меню
  • Добавление, удаление или переопределение функций родительской темы с использованием дочерней темы.

В этом посте я покажу вам, как делать каждую из этих вещей.

Добавление кода в файл функций и его активация

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

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

Вы можете узнать, как сделать каждый из них в нашем руководстве по созданию плагина.

Итак, давайте посмотрим, как вы работаете с functions.php и как вы добавляете в него некоторые из наиболее распространенных функций.

Создание файла функций

Если в вашей теме еще нет файла функций, вам необходимо его создать. Создайте новый файл в главном каталоге темы и назовите его 9.0085 functions.php .

Вам нужно будет добавить в файл открывающий тег PHP, но вам не нужен закрывающий:

Loading gist 67f041de5d6ea537027ad6da0d9103ff

Теперь файл функций готов для добавления кода. Обычно я добавляю большие блоки закомментированного текста перед каждым разделом, чтобы потом легко найти свой код. Что-то вроде этого:

Loading gist be82e35844b18d837f5790a27c769389

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

Добавление часто используемого кода в

functions.php

Давайте рассмотрим некоторые наиболее распространенные варианты использования файла functions и способы их кодирования.

Добавление поддержки тем

В WordPress есть определенные функции, для которых вы должны добавить поддержку тем, чтобы ваша тема могла ими воспользоваться. К ним относятся:

  • Форматы постов — форматы, подобные tumblr, такие как стандарт, видео, цитаты и отступления
  • Миниатюры сообщений — также известные как избранные изображения. Если вы хотите отобразить их в своей теме, вам также придется добавить код для их вывода в файлы шаблонов, но они не будут доступны на экранах администратора, если вы не добавите для них поддержку темы
  • Пользовательский фон — позволяет вам (или другим пользователям вашей темы) настраивать фоновое изображение и цвета с помощью настройщика
  • Пользовательский заголовок, который работает аналогично пользовательскому фону
  • Ссылки на автоматические каналы — для RSS-каналов
  • HTML5 — для форм поиска, комментариев, галереи и т. д. Это не влияет на вашу способность кодировать вашу тему с помощью HTML5, но относится к коду, сгенерированному WordPress
  • Тег заголовка — позволяет добавить тег заголовка в ваших страниц в целях SEO и доступности. Вам это не понадобится, если у вас есть SEO-плагин, который сделает это за вас
  • .

Таким образом, чтобы добавить поддержку тем для форматов сообщений, например, вы используете функцию add_theme_support() в вашем файле функций:

Loading gist fe264851131411e93ef1ee85315d985f

Некоторые функции, для которых вы добавляете поддержку тем, имеют дополнительные параметры; например, вы можете указать форматы сообщений, которые вы хотите использовать при добавлении их поддержки:

Loading gist be93d67bf83ff7f6294d308118c445bb

And for featured images, you can specify which post types you want to add support for them to:

Loading gist 4608297ea85921f139e7e39f96c

But none of this will work unless you place your code inside a function that you затем подключитесь к нужному хуку, который является хуком действия after_setup_theme . Вы можете добавить все свои функции add_theme_support() в одну большую функцию, которую вы затем подключите к after_setup_theme . Поэтому, если вы хотите добавить поддержку темы для миниатюр сообщений, форматов сообщений, HTML5 и ссылок на автоматические каналы, добавьте это в свой файл функций: добавили поддержку темы, поэтому, если я или кто-то еще вернется к файлу позже, будет легко увидеть, что происходит.

Добавление файла перевода

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

Вы сообщаете WordPress, где находится файл перевода темы, используя функцию load_theme_textdomain()  в вашем файле функций, например: ищет файл, начинающийся с wpmu-theme в подкаталоге languages, поэтому путь будет wp-content/themes/mytheme/languages/ , а имя файла языков будет начинаться с wpmu-theme , за которым следует код языка.

Если вам нужно подготовить вашу тему к переводу, вам нужно будет сделать больше, чем просто загрузить этот текстовый домен — наше подробное руководство по переводу плагинов также применимо к темам и расскажет вам все, что вам нужно знать.

Что-то еще, что вы делаете в своем файле функций, — это регистрация местоположений для навигационных меню. Если вы привыкли работать со сторонними темами, вы наверняка заметили, что многие из них имеют основную навигацию 9.0110, который вы можете установить на экране администратора меню, что позволит вам добавить созданное вами меню в это место в теме. Если вы хотите, чтобы пользователи могли делать это в вашей теме, вам нужно использовать функцию register nav menus() :

Loading gist экран администратора в качестве основной навигации, и чей идентификатор является основным. Затем вы используете этот идентификатор для вывода меню в файле header.php вашей темы.

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

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

Loading gist 87e0f124ef49808ddb1112f8f1a8932c

Опять же, вам нужно закодировать меню в вашей теме sidebar.php , используя функцию wp_nav_menu() .

Собираем все вместе

Самые внимательные из вас заметят, что все функции, которые я привел выше, активируются с помощью одного и того же хука действия: after_setup_theme . Это означает, что вместо того, чтобы писать несколько отдельных функций, вы можете добавить их все в одну функцию в файле functions.php , а затем активировать ее с помощью хука действия.

У них была бы одна большая функция:

Загрузка сути a19ff072e61829a3dc080dda04754cd5

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

Включая файлы

Иногда вы обнаружите, что ваш файл функций становится больше, чем вы можете с комфортом управлять, и содержит блоки кода, которые вы хотели бы сохранить отдельно. В этом случае рекомендуется создать отдельные файлы, называемые include-файлами, для этого кода, а затем вызывать их из файла functions.

Создайте в своей теме папку с именем , включает , а затем создайте новый файл php для каждого блока кода, который вы хотите выделить. Поэтому, если я хочу переместить настройку темы, например, в другой файл, я перемещаю весь приведенный выше код в файл с именем theme_setup.php , а затем вызываю его в своем файле функций:

код во включаемом файле и запускает его в том месте в файле функций, где я добавил этот функция include() . Я стараюсь помещать все свои включения в начало файла функций, чтобы мне было легко их найти, опять же с комментариями, чтобы рассказать мне, что они делают.

Работа с родительскими и дочерними темами

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

Существует три способа переопределения или добавления функций в дочернюю тему:

  • Создать новую версию подключаемой функции.
  • Деактивировать функцию из родительской темы.
  • Добавьте свою собственную функцию, используя приоритет для переопределения функции родительской темы.

Давайте кратко рассмотрим каждый из них по очереди.

Подключаемые функции

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

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

Загрузка сути 5c64a5a9c2e34dc999150120cac32bd6

Поскольку функции из дочерней темы запускаются раньше функций из родительской темы , это означает, что если вы создадите функцию с тем же именем в своей дочерней теме, то WordPress не будет запускать функцию из родительской темы. Итак, чтобы переопределить родительскую тему, просто создайте свою собственную функцию с тем же именем в файле функций вашей дочерней темы.

Деактивация функций

Чтобы деактивировать функцию, вы отсоединяете ее от хука действия или фильтра, к которому она прикреплена. Итак, если в вашей родительской теме есть функция с именем parent_function() , которая активируется с помощью хука init , вы деактивируете ее в своей дочерней теме следующим образом: больше не бегай. Затем вы можете написать новую функцию, если вам нужна другая функциональность в дочерней теме — прикрепите ее к тому же хуку, но не давайте то же имя.

Примечание. Если родительская функция имеет параметр приоритета в функции add_action() , которая запускает функцию, которую вы хотите деактивировать, вы должны указать тот же приоритет при ее деактивации. Я перейду к приоритетам в следующем разделе.

Использование приоритета функции

Последний вариант — создать новую функцию с более высоким приоритетом, чем функция, которую вы хотите переопределить, то есть она будет выполняться после этой функции. Вы должны сделать это, потому что по умолчанию WordPress сначала запускает функции из вашей дочерней темы; только добавив номер приоритета, вы можете изменить это.

Итак, скажем, ваша родительская тема имеет функцию, называемую parent_function () , которая активируется с помощью крючка init с приоритетом 20 :

. прикрепите это к хуку init с более высоким приоритетом, например 30 :

Loading gist edf9249be7bbe47e45d8d0ba416f9bc6

Обратите внимание, что если родительской функции не назначен приоритет, то она будет использовать значение по умолчанию, равное 10. Таким образом, вы можете использовать для своей дочерней функции что-то большее, чем 10, чтобы убедиться, что она запускается после родительской функции.

Файл функций — ваш друг

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *