Los archivos PHP del tema hijo no sobrescriben los archivos PHP del tema padre
Tengo un archivo PHP ubicado en:
.../wp-content/themes/kallyas-child/pagebuilder/elements/TH_TeamBox/TH_TeamBox.php
Estoy intentando usar el archivo anterior para sobrescribir el archivo TH_TeamBox.php del tema padre que se encuentra aquí:
.../wp-content/themes/kallyas/pagebuilder/elements/TH_TeamBox/TH_TeamBox.php
Mi tema hijo está activo y he creado la ruta de archivos en mi tema hijo para imitar mi tema padre. Tenía entendido que si hacía eso, podría editar los archivos PHP a mi gusto en mi tema hijo sin perder mis cambios cuando actualice mi tema padre.
He estado desarrollando durante un tiempo, pero como pueden ver soy nuevo en WordPress. Cualquier idea sobre por qué el archivo .php de mi tema hijo no está sobrescribiendo el archivo .php de su tema padre sería muy apreciada. Estaré encantado de proporcionar cualquier información adicional que puedan necesitar para ayudarme, ¡gracias! : )
Los temas hijos pueden sobrescribir plantillas, no simplemente archivos PHP arbitrarios.
En WordPress, un tema consiste en un conjunto de archivos PHP que se utilizan como Plantillas. Puedes encontrar una lista de esos archivos en la Jerarquía de Plantillas.
Esas plantillas específicas pueden ser sobrescritas con nuevas versiones, pero a menos que el tema padre tenga algún mecanismo especial para sobrescribir otros archivos, entonces los archivos simplemente incluidos por el tema padre como parte de una estructura de soporte o como librerías para un fragmento de código de un constructor de páginas no pueden ser sobrescritos de esa manera.

No es lo que quería escuchar, pero gracias por la información. Lo aprecio.

Aquí se mencionan varias funciones útiles que ayudan a sobrescribir archivos del tema padre. (Aún se necesita un pequeño cambio en un archivo del tema padre. Es imposible evitarlo al 100%, según lo que sé). Revisa estas: locate_template()
, get_theme_file_path()
.

La solución es mover los cambios necesarios al archivo functions.php de tu tema hijo.
Si se trata de una función, normalmente habrá una declaración condicional que verifique si ya está declarada, en este caso puedes copiar la función a functions.php con el mismo nombre y hacer los cambios requeridos, tendrá prioridad sobre el resto de archivos del tema. En caso de que la función se haya declarado sin una declaración condicional, entonces debes cambiar su nombre en functions.php, localizar el archivo de plantilla donde se llama a la función, copiarlo a tu tema hijo y cambiar la llamada a la función en él.
Si se trata de un widget, copia toda la declaración de la clase a functions.php, cambia su nombre y realiza los demás cambios. Asegúrate de registrar también el nuevo widget y lo encontrarás disponible en el área de widgets con el nuevo nombre y los cambios realizados.

Gracias por tu aporte. En el momento de la pregunta no estaba buscando cómo sobrescribir una función, sino más bien sobrescribir un archivo. Además, la respuesta correcta ya fue proporcionada por Otto. A menos que exista una función de plantilla personalizada que puedas filtrar (como wc_get_template de WooCommerce), solo los archivos de plantilla principales (header.php, footer.php, page.php, etc.) pueden ser sobrescritos.

Tengo una solución alternativa para ti que puede ser mejor que simplemente modificar archivos en el tema padre, lo cual como mencionó Otto no es recomendable.
Si agregas estas dos líneas de PHP al inicio de cualquier archivo que quieras modificar en la estructura de directorios de tu tema hijo:
<?php
$filepath = str_replace(get_option('template'), get_option('stylesheet'), __FILE__);
if (file_exists($filepath)) {include($filepath); return;}
?>
Por supuesto, tendrías que volver a hacer esto en cada archivo después de una actualización del tema, por lo que se recomienda tomar nota de estos archivos y probablemente ya no actualizar el tema directamente, sino descargarlo, agregar estas líneas localmente y subir la copia actualizada por FTP.
Puede parecer que no vale la pena el esfuerzo, pero lo que haría es permitirte mantener tus archivos modificados juntos en la estructura de tu tema hijo sin que sean sobrescritos por actualizaciones del tema. Nuevamente, solo tendrías que volver a agregar esas líneas al inicio de cualquier archivo padre que quieras seguir modificando.
También significa que podrías eliminar la copia modificada del archivo de funciones en el tema hijo sin romper tu sitio (por ejemplo, para probar contra un archivo de tema actualizado) - ya que esto volverá al archivo original si no se encuentra una copia modificada.
(Edición de CEM Typo: reemplazó la primera llamada a get_options
con get_option
).
