Некоторое объяснение
Для начала вам необходимо понять назначение функции functions.php в теме. Functions.php - это просто файл плагина с любым именем, которое, если оно есть, автоматически загружается Wordpress. Wordpress загружает файл function.php вашей текущей темы для интерфейсных страниц WordPress, а также для фоновых (admin) страниц.
Между плагином и functions.php нет никаких отличий, за исключением того, что плагины имеют имя и могут быть активированы / деактивированы независимо от других плагинов и тем. Файл funtions.php прилагается к вашей текущей теме, и если вы переключаетесь на другую тему, Wordpress использует файл functions.php новой темы, а не ваш старый файл functions.php с пользовательскими изменениями.
Обновления тем также перезаписывают functions.php, и избежать этого невозможно, даже если вы поместите свои пользовательские изменения в отдельные файлы кода и включите их в свой файл fucntions.php, вам придется добавлять строку включения после каждого обновления.
Обычно тип кода, который должен идти в functions.php:
- функции, которые используются в файлах шаблонов вашей темы.
- варианты темы
- боковые панели
- навигационные меню
- форматы сообщений
- опубликовать миниатюры
- любой код, который относится только к текущей теме.
Как вы хотите сохранить ваши пользовательские изменения, даже если вы переключаете темы. Потому что дочерняя тема в этом случае не будет работать, так как вы переключите тему, и функции .php дочерней темы не будут использоваться.
Решение
Единственное решение, рекомендованное @Otto, - создать файл плагина. Подход, который вы можете использовать для создания плагина для своего сайта, заключается в том, чтобы создать папку с именем вашего сайта в 'wp-content / plugins' и создать в нем файлы плагинов.
Почему плагины? а не один файл плагина.
Сгруппируйте связанные функции сайта, связанные с кодом, в отдельных файлах плагинов и не забудьте добавить заголовок плагина во все ваши файлы плагинов, чтобы Wordpress распознавал их как отдельные плагины. После этого у вас будет возможность активировать / деактивировать различные функции / функциональные возможности вашего сайта, не нарушая ничего.