Alguna explicación
Primero debe comprender el propósito de functions.php en un tema. Functions.php es básicamente un archivo de complemento sin ningún nombre que, si está presente, Wordpress lo carga automáticamente. Wordpress carga la función.php de su tema actual para las páginas frontales de WordPress y también para las páginas administrativas (admin).
No hay diferencia entre un complemento y funciones.php, excepto que los complementos tienen nombre y pueden activarse / desactivarse independientemente de otros complementos y temas. El archivo funtions.php se adjunta con su tema actual y, si cambia a otro tema, Wordpress usa las funciones del nuevo tema.php y no sus antiguas funciones.php con modificaciones personalizadas.
Las actualizaciones de temas también sobrescriben functions.php y no hay forma de evitarlo, incluso si coloca sus modificaciones personalizadas en archivos de código separados y los incluye en fucntions.php, deberá agregar esa línea de inclusión después de cada actualización.
Generalmente el tipo de código que debería ir en functions.php:
- funciones que se utilizan en los archivos de plantilla de su tema.
- Opciones de tema
- barras laterales
- menús de navegación
- formatos de publicación
- publicar miniaturas
- cualquier código que solo esté relacionado con el tema actual.
Como desea conservar sus modificaciones personalizadas incluso si cambia de tema. Debido a que el tema hijo no funcionará en este caso, ya que cambiará el tema y las funciones.php del tema hijo no se utilizarán.
La solución
La única solución recomendada por @Otto es crear un archivo de complemento. El enfoque que puede tomar para crear el complemento específico de su sitio es crear una carpeta con su nombre de sitio en 'wp-content / plugins' y crear archivos de complemento en él.
¿Por qué los archivos de complemento? y no solo archivo de complemento.
Agrupe la funcionalidad del sitio relacionado con el código en archivos de complementos separados y no olvide agregar el encabezado del complemento en todos sus archivos de complemento para que Wordpress los reconozca como complementos separados. Entonces tendrá la capacidad de activar / desactivar diferentes características / funcionalidades de su sitio sin romper todo.