Деякі пояснення
Спершу вам потрібно зрозуміти призначення функції.php у темі. Functions.php - це в основному файл плагіна з будь-яким ім'ям, яке при наявності автоматично завантажується Wordpress. Wordpress завантажує функцію вашої поточної теми function.php для лицьових сторінок Wordpress, а також для зворотних (адмін) сторінок.
Між плагіном і function.php немає різниці, за винятком того, що плагіни мають ім'я, і вони можуть бути активовані / деактивовані незалежно від інших плагінів та тем. Funtions.php додається до вашої поточної теми, і якщо ви переходите на іншу тему, Wordpress використовує нову тему function.php, а не стару функцію.php зі спеціальними модифікаціями.
Тематичні оновлення також переписують function.php, і немає способу цього уникнути, навіть якщо ви помістите власні модифікації в окремі файли коду та включите їх у свій fucntions.php, вам доведеться додавати рядок, що включає рядок після кожного оновлення.
Як правило, тип коду, який повинен входити у function.php:
- функції, які використовуються у файлах шаблонів вашої теми.
- параметри теми
- бічні смуги
- навігаційні меню
- формати публікацій
- розмістити ескізи
- будь-який код, пов'язаний лише з поточною темою.
Оскільки ви хочете зберегти свої власні модифікації, навіть якщо ви переключите теми. Тому що дочірня тема не працюватиме в цьому випадку, оскільки ви переключите тему, а функції.php дочірньої теми не використовуватимуться.
Рішення
Єдине рішення, як рекомендує @Otto, - створити файл плагінів. Підхід, який ви можете скористатися для створення конкретного додатка для вашого сайту, полягає у створенні папки з назвою вашого сайту у "wp-content / plugins" та створенні в ньому файлів плагінів.
Чому плагінні файли? а не один файл плагіна.
Функціональні можливості сайту, пов’язані з кодом, пов’язані з кодом в окремих файлах плагінів, і не забудьте додати заголовок плагіна у всі ваші плагінні файли, щоб Wordpress їх розпізнавав як окремі додатки. Потім у вас буде можливість активувати / деактивувати різні функції / функціональність вашого сайту, не порушуючи нічого.