Повне керівництво по використанню файлу wordpress, cms і движки для сайтів

У PHP functions.php поміщається функціонал, необхідний вашій темі і який не відноситься лише до конкретного шаблоном.

У Кодексі WordPress дається таке визначення файлу функцій:
Файл functions.php поводиться, як плагін, додаючи функції і функціонал на WordPress- сайт. Його можна використовувати для виклику як PHP-функцій, так і вбудованих функцій WordPress, для визначення власних функцій. Можна отримати той же результат, додавши код в плагін WordPress або в файл functions.php теми WordPress.

Між functions.php і файлом плагіна існує схожість. Він використовується для коду того ж типу, який можна додати в плагін.

Якщо у вас є багато функціонального коду, який необхідно використовувати на сайті, тоді потрібно помістити цей код в плагін. Але якщо код залежить від теми, то functions.php - це саме те місце, де його слід розмістити. Загальне правило:

Використовуйте functions.php. коли потрібно додати прості функції, пов'язані з відображенням контенту (т. е. він не буде працювати, якщо дана тема неактивна).

Створіть плагін. якщо функціонал більш складний або public function PHP не залежить від теми. Як приклад можна привести реєстрацію типів записів - ви ж не хочете втратити призначені для користувача типи записів при зміні теми.

Загальне використання файлу функцій

Коли використовувати functions.php:
  • Додавання підтримки теми, наприклад, для розміщених зображень, форматів записів і посилань RSS;
  • Вказівка ​​WordPress. де знаходиться файл перекладу теми;
  • Реєстрація розташувань для меню навігації, що дозволяє додавати меню через панель адміністрування;
  • Додавання, видалення або перевизначення функціональних можливостей батьківської теми з використанням дочірньої теми.
  • У цій статті я покажу вам, як це робиться.

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

Ми додаємо код в functions.php і вказуємо WordPress активувати його точно так само, як і в випадку з плагіном:
  • Пишемо функції, які потім викликаємо в файлах шаблонів теми - це корисно, коли є блок коду, який потрібно використовувати в декількох місцях теми, але він не буде працювати як частина шаблону;
  • Прив'язуємо функції до хуку дії або фільтра. Таким чином, функція запускається, коли WordPress зустрічає цей хук. WordPress сам надає в розпорядження розробників сотні хуков. Ви можете знайти деякі з них в своїй темі і плагінах. Якщо ви додаєте в functions.php код для активації певного функціоналу в новій темі, тоді вам потрібно створити дочірню тему. Інакше файл функцій буде перезаписан відразу після поновлення теми;
  • Створюємо шорткод, який потім додаємо в контент. Я б не рекомендувала додавати шорткод за допомогою файлу PHP function. Краще зробити це за допомогою плагіна, щоб вміст, що виводиться шорткодом, не пропало, якщо ви поміняєте тему;
  • Створюємо віджет. Це не дуже гарне рішення; якщо ви хочете створити віджет, додайте для нього плагін;
  • Давайте розглянемо, як працювати з файлом functions.php і як з його допомогою додати деякі з поширених функціональних можливостей.

Створення файлу функцій

Якщо ваша тема не містить functions.php. його потрібно створити в кореневому каталозі. Потім потрібно додати в файл відкривається тег PHP. але закривати його не потрібно:

Додавання коду в файл functions.php

Розглянемо деякі часто використовувані функції.

Додавання підтримки теми

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

Деякі з функцій WordPress functions php. для яких додається підтримка темою, мають додаткові параметри. Наприклад, при додаванні підтримки можна вказати формати записів, які хочете використовувати:

А для спеціальних зображень можна вказати, в яких типах записів вони будуть підтримуватися:

Але нічого з цього не спрацює, якщо ви не помістіть свій код всередині функції і не прив'яже до відповідного хуку дії after_setup_theme. Можна додати всі функції add_theme_support () всередині однієї більшої функції, яку ви потім прив'яже до after_setup_theme. Тому, якщо ви хочете додати підтримку темою мініатюр записів, форматів записів, HTML5 і автоматичних посилань на канали, додайте наступний код в файл функцій:

Додавання файлу перекладу

Переклад означає, що будь-який текст, який ви додаєте в панель адміністрування через тему, буде переведений з використанням файлу перекладу.

За допомогою private function PHP load_theme_textdomain () у файлі функцій вкажіть WordPress. де розміщується файл перекладу:

Ця функція використовує функцію get_template_directory (). щоб знайти папку теми, а потім шукає в папці languages ​​файл, що починається з wpmu-theme. Тому шлях буде wp-content / themes / mytheme / languages ​​/. а ім'я для файлу мови починається з wpmu-theme. за чим слід код мови.

Реєстрація меню навігації

У файлі functions.php також реєструються меню навігації. У багатьох темах є прапорець «Основне меню», який можна встановити в розділі «Меню». Це дає можливість використовувати меню в певному місці теми. Щоб реалізувати подібний функціонал, потрібно використовувати функцію register nav menus ():

Цей код реєструє розташування меню, яке буде відображатися в панелі адміністрування як "Основне меню", а його ідентифікатор буде primary. Потім ви використовуєте цей ідентифікатор для виведення меню в файлі теми header.php.

Зверніть увагу. в коді, наведеному вище, я вже зробила назва меню готовим до перекладу. Тому будь-який користувач, що говорить іншою мовою, буде бачити текст «Основне меню», переведеним для нього за допомогою файлу перекладу.

Також можна використовувати цю PHP function для реєстрації декількох позицій виведення меню навігації. У наведеному нижче коді зареєстровано основне меню, а також додаткове меню в бічній панелі:

Потрібно додати код меню в файл sidebar.php теми, використовуючи функцію wp_nav_menu ().

Підведемо підсумки

Всі функції, які я описала вище, активуються за допомогою одного хука дії: after_setup_theme. Це означає, що замість написання декількох окремих функцій, можна додати їх все в одну функцію, а потім активувати її за допомогою хука.

Можна створити одну велику функцію:

включення файлів

Іноді functions.php стає важко керованим, і містить блоки коду, які хотілося б зберігати окремо. В цьому випадку рекомендується створити окремі файли, а потім викликати їх з functions.php.

Створіть у своїй темі папку під назвою includes. а потім додайте в неї окремі файли PHP для кожного блоку коду, який потрібно відокремити. Наприклад, якщо потрібно було перемістити налаштування теми в інший файл, я б перемістила весь наведений вище код в файл з ім'ям theme_setup.php. а потім викликала його в functions.php:

Даний код викликає код включається файлу, а потім запускає його в тому місці functions.php. в якому я додала функцію include (). Зазвичай я розміщую всі файли, що включаються на початку файлу функцій, щоб їх було легко знайти.

Робота з батьківськими і дочірніми темами

functions.php може стати ефективним інструментом для роботи з батьківськими і дочірніми темами. У дочірній темі можна використовувати власний файл функцій для перевизначення або видалення функцій з батьківської теми, або для додавання нових.

Існує три способи перевизначення або додавання функцій в дочірню тему:
  • Створення нової версії підключається функції;
  • Деактивация функції батьківської теми;
  • Додавання власної функції з використанням пріоритету, щоб перевизначити функцію батьківської теми.

Розглянемо кожен із способів.

підключаються функції

Якщо ви працюєте з добре відпрацьованої батьківської темою, то існує ймовірність того, що в functions php (де знаходяться функції) вони будуть підключаються.

Функції дочірньої теми виконуються раніше, ніж ті, які містить батьківська тема. Якщо ви створюєте в дочірньої темі функцію з тим же ім'ям, WordPress НЕ буде запускати її з батьківської теми. Тому для перевизначення батьківської теми просто створіть в functions.php дочірньої теми власну функцію з тим же ім'ям.

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

Щоб деактивувати функцію, відкріпите її від дії або фільтра, до якого вона прив'язана. Наприклад, якщо в батьківській темі є функція parent_function (). яка активується за допомогою хука init. можна деактивувати її в дочірньої темі наступним чином:

Це буде означати, що дана функція WordPress functions PHP більше не буде виконуватися. Потім, якщо ви хочете мати різні функції в дочірньої темі, можна написати нову функцію. А потім прив'язати її до того ж хуку, але не ставити для неї те ж ім'я.

Примітка. Якщо батьківська функція містить параметр пріоритету в add_action () виконує функцію, яку потрібно деактивувати, вам потрібно вказати той же пріоритет при її деактивації.

Використання пріоритету функції

Останній варіант - створити нову функцію з більш високим пріоритетом, ніж функція, яку потрібно перевизначити. Тобто вона буде виконуватися після початкової функції. Ви повинні зробити це, тому що за замовчуванням WordPress запускає функції дочірньої теми першими. Тільки додавши номер пріоритету, можна змінити це.

Припустимо, що батьківська тема містить функцію parent_function (). яка активується за допомогою хука init з пріоритетом 20:

Можна написати функцію, яка перевизначити батьківську функцію, а потім прив'язати її до хуку init з більш високим пріоритетом, наприклад 30:

Якщо батьківська функція не має пріоритету, то вона буде використовувати значення за замовчуванням, рівне 10. Таким чином, можна використовувати будь-яке число більше 10. щоб функція дочірньої теми виконувалася після батьківської функції.

Файл функцій - ваш друг

Файл PHP function теми працює дуже схоже на плагін, але він специфічний для конкретної теми. Тому необхідно використовувати його тільки для того, щоб додати функціонал, який може бути відключений при активації іншої теми. У цій статті ви дізналися, для чого використовується файл функцій теми. Працюйте з functions.php обережно, уникайте його використання, коли все що потрібно можна зробити за допомогою плагіна.

Переклад статті «The Ultimate Guide to the WordPress functions.php File» дружною командою проекту Сайтобудування від А до Я.

Схожі статті