Avisos
Vaciar todo

Tema hijo - functions  

 
César
 César
Usuario eminente

Hola equipo,

He creado un tema hijo para una web, ¿hay alguna forma de tener todo el contenido de functions.php del padre en el functions.php del hijo?

Suena a pregunta absurda, pero se me ha eliminado dos veces en dos días seguidos el archivo functions.php del tema principal, no sé los motivos, pero la web obviamente queda en blanco hasta que resubo dicho archivo de nuevo al hosting.

Mientras averiguo el motivo y lo soluciono, he creado un tema hijo y quisiera saber si se puede poner de algún modo todo el contenido del functions.php del padre en el functions.php del tema hijo, así, si se vuelve a eliminar, que el tema hijo tenga todas las funciones y la web no se quede en blanco..

No sé si esto es posible, he intentado unas cuantas cosas pero me genera error y queda toda la web en blanco, incluído el backend, supongo que por la duplicidad de las funciones.

¡Gracias de antemano!

URL del sitio: Contenido solo visible a usuarios registrados

Citar
Respondido : 18/12/2018 5:14 am
César
 César
Usuario eminente

Vale, nada más escribir el post he probado lo siguiente, de momento me vale pero solo es un parche:

He pasado todo el contenido del functions.php del padre al functions.php del hijo, después he eliminado el archivo del tema padre, al no haber duplicidad todo ha funcionado correctamente.

La pega, que no puedo saber si se vuelve a eliminar o no, ya que no lo tengo en el directorio del padre... y lo que necesito es tenerlo ahí para comprobarlo, mientras averiguo qué pasa.

Nuevamente, gracias.

ResponderCitar
Respondido : 18/12/2018 5:20 am

Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola.

Todo lo que tengas en la carpeta del tema hijo no se elimina y puedes tener el contenido del archivo tanto en el tema principal como en el tema hijo.

El archivo fuctions.php del tema padre se sobrescribe cada vez que se realiza una actualización.

La pantalla en blanco o error 500 es provocado por alguna extensión o código que no esta bien. Accede a tu cuenta de cPanel -> Administrador de archivos y edita el archivo error_log.

En ese archivo se almacenan los avisos de errores. Adjunta los avisos que tienes de día de hoy para que lo revisemos y podamos ver el motivo de esos errores.

Un saludo

ResponderCitar
Respondido : 18/12/2018 9:45 am
César
 César
Usuario eminente

Hola Pepe, gracias por tu ayuda,

Puntualizar que mi archivo functions.php no ha sido modificado nunca, por lo que no tengo problemas con una futura actualización del tema.

----------------------------------------------------
Problema 2: Consecuencia de solucionar temporalmente el problema 1
----------------------------------------------------
Al poner todo el contenido del archivo del tema principal en el archivo del tema hijo, toda la web se rompe, incluído el backend (ERROR 500 en todo el dominio).

Por tanto, mantener los dos archivos functions (uno en el tema principal y otro con el mismo contenido en el tema hijo) hace que la web deje de funcionar por completo (no sé si será por la duplicidad de las funciones...)

Al eliminar el archivo functions del tema principal y dejando solo el del tema hijo, la web vuelve a funcionar perfectamente (así es como lo tengo ahora mismo).

----------------------------------------------------
Problema 1: Se me ha borrado 2 veces el functions.php del tema principal...
----------------------------------------------------
Adjunto los datos del error_log (solo una cantidad porque es el mismo):
...
[17-Dec-2018 23:30:12 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[17-Dec-2018 23:32:41 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[17-Dec-2018 23:40:23 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[17-Dec-2018 23:40:25 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[18-Dec-2018 00:01:25 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[18-Dec-2018 00:19:31 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[18-Dec-2018 00:19:42 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[18-Dec-2018 00:19:45 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[18-Dec-2018 00:19:47 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[18-Dec-2018 00:19:50 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[18-Dec-2018 00:55:17 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33
[18-Dec-2018 00:55:45 UTC] PHP Fatal error: Call to undefined function escape_custom_css() in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/header.php on line 33

Ya miré este archivo cuando se puso toda la web en blanco para saber qué estaba pasando, al revisar la línea 33 comprobé que fallaba justo cuando empezaba a llamar a la primera función:

33 -->

35-->

Por lo que fui directo al archivo functions.php a ver que pasaba, y ahí es cuando me di cuenta de que no estaba :ohmy: Al restaurarlo todo volvió a la normalidad, y cuando al día siguiente la web falló de nuevo, ya sabía que se había vuelto a borrar el archivo, así que, mientras no averiguo porqué se borra, procedí a crear el tema hijo específicamente para asegurar el functions.php, y de ahí el "Problema 2" descrito anteriormente (no puedo tener ambos).

Conclusión: Ahora mismo tengo la salvaguarda de tener un único functions.php en el tema hijo, evitando que se borre en el tema principal... porque no está :laugh: (aún no sé los motivos del porqué se borra), pero me gustaría poder mantener ambos con el mismo contenido, para intentar investigar cuando se elimine nuevamente pero que a su vez la web siga funcionando gracias al functions.php del tema hijo (salvaguarda).

Espero haberme explicado bien.
Nuevamente, gacias.

ResponderCitar
Respondido : 18/12/2018 1:15 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

César
 César
Usuario eminente

Se me olvidó poner los logs del Problema 1 (Cuando mantengo ambos archivos functions.php, tanto en el tema principal como en el tema hijo):

[18-Dec-2018 12:06:54 UTC] PHP Fatal error: Cannot redeclare escape_content_width() (previously declared in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape-child/functions.php:146) in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/functions.php on line 134
[18-Dec-2018 12:07:57 UTC] PHP Fatal error: Cannot redeclare escape_content_width() (previously declared in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape-child/functions.php:146) in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/functions.php on line 134

ResponderCitar
Respondido : 18/12/2018 1:35 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Cesar.

No tiene por que borrase a no ser que sean uno archivos corruptos y el fireware o el antivirus los ponga en cuarentena.

Edita el archivo header.php y comenta los codigos escape_custom_css y escape_custom_js();


Añade de nuevo el archivo fuctions en la carpeta de la plantilla y revisa si desaparece el problema.

Comprueba si tienes actualizaciones de plantilla pendientes.

Un saludo

ResponderCitar
Respondido : 18/12/2018 1:50 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación

César
 César
Usuario eminente

El problema persiste, ERROR 500.
Comentar esas funciones sería para comprobar si el functions.php se pudiera borrar de nuevo.

Pero el ERROR 500 lo genera al mantener ambos functions.php (tema principal y tema hijo):

[18-Dec-2018 12:07:57 UTC] PHP Fatal error: Cannot redeclare escape_content_width() (previously declared in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape-child/functions.php:146) in /home/pintur13/public_html/kingkeyescaperoom/wp-content/themes/escape/functions.php on line 134

Estoy pensando en quitar la declaración descrita en el log del archivo functions.php del TEMA PADRE
escape_content_width().../functions.php on line 134
Aunque no sé, si entonces dará error en la siguiente reDECLARACIÓN de otra función.

Puesto el caso de comprobarlo y que funcionase (poder mantener ambos functions.php) ¿Crees que que estando declarada solo en el tema hijo, funcionará bien la web? Así podría mantener ambos archivos, probar a comentar las líneas

y ver si la eliminación es provocada por dichas funciones comentadas.

Gracias!

ResponderCitar
Respondido : 18/12/2018 2:20 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Cesar.

El comentar esas lineas es para que no genere ningún error y ver si se pueden mantener los dos archivos.

Esos dos archivos pertenecen a tu plantilla.

escape_custom_css
escape_custom_js

Si por lo que comentas no se encuentran lo que tienes quehacer es descargar una copia de la plantilla y volver s subirlos a tu cuenta de hosting.

Otra opción seria actualizar la plantilla.

Al ser una plantilla de pago no podemos probarla para poder informarte mejor. Lo tendrías que consultar con los desarrolladores.

Un saludo

ResponderCitar
Respondido : 18/12/2018 4:37 pm

Cursos Gratuitos WordPress

César
 César
Usuario eminente

Hola de nuevo Pepe,

A ver, eso no son archivos de mi plantilla, son funciones declaradas.
En ningún momento he dicho que no los he encontrado.
He dicho que son funciones declaradas dentro del archivo header.php
Los he puesto como comentarios como me has indicado:

Y como he dicho anteriormente, no ha servido para nada.
El error 500 lo sigue dando, ya que dicho error es causado por mantener ambos functions.php (nada que ver el header.php)
El error es causado por esta "REdeclaración" de una función (como he indicado anteriormente y como indica el log que he adjuntado):
escape_content_width()

Creo que no has entendido mi problema.

Tengo 2 problemas diferentes:
- No sé porqué se borra el archivo "functions.php" del tema principal.

- No puedo mantener dos archivos "functions.php" exactamente iguales (Un en el tema principal y otro en el tema hijo): provoca ERROR 500.

Pregunta:
- ¿Hay alguna manera de poder tener 2 archivos "functions.php" exactamente iguales tanto en el tema principal como en el tema hijo?

Gracias, un saludo.

ResponderCitar
Respondido : 18/12/2018 8:09 pm
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola

Esto que comentas:
Contenido solo visible a usuarios registrados

No es posible, habría contenido repetido.

Lo que me parece extraño es lo que comentas que se elimina, no tendría porque eliminarse, cada cuanto se elimina el functions.php del theme padre?, podrías probar si te sucede lo mismo con otro theme de los que viene por defecto. (podrías probar en un clon de tu sitio) . Tienes alguna tarea cron programada?, algún plugin de seguridad?

Saludos.

ResponderCitar
Respondido : 18/12/2018 8:55 pm

wpdoctor-revisa-la-salud-de-tu-wordpress

César
 César
Usuario eminente

Hola Jhon!

Muchas gracias por tu respuesta, esto acota mucho mi situación y puedo seguir avanzando!
Suponía que no era posible contener ambos archivos exactamente iguales, supongo que tendría que supervisar todas las declaraciones para que no estuvieran duplicadas... y aun así no sé si seguiría dando error. Al menos, descarto esa posibilidad, muchas gracias!.

Se me ha eliminado por primera vez este Domingo 16 de Diciembre, restauré el archivo functions.php y listo.
Y se me volvió a eliminar por segunda vez al día siguiente, Lunes 17 de Diciembre, volví a restaurar y listo.

Como no sé el motivo, en el mismo momento que lo restauré por segunda vez, y con el miedo de que volviera a suceder al día siguiente, pues decidí crear un tema hijo para salvaguardar el archivo, a cambio tuve que borrarlo del tema principal porque me causaba el dicho error 500 (por duplicidad). Al tenerlo en el tema hijo no se me borra (al tenerlo en otra ubicación, que ese era el cometido del tema hijo).

No tengo ninguna tarea programada.
No tengo ningún plugin de seguridad, pero ahora me lo voy a plantear, gracias por la recomendación.
No puedo realizar la prueba con otro theme, porque la web está en producción.
Sí que podría crear un clon y ese dejarlo en un subdominio y ver que sucede, si se vuelve a borrar o incluso cambiar el theme por el Twentty.

Y sí, me quedé muy sorprendido cuando se me eliminó la primera vez, aunque como estaba modificando archivos, llegué a dudar de que hubiera sido yo sin querer, pero la segunda vez confirmó que se había "autoborrado", o que algún script lo había borrado... porque yo no estaba trabajando (estaba en casa de un familiar) y ahí me entró el miedo.

¿Que plugin me recomiendas de seguridad? Por seguir realizando pruebas y descartando.
Bueno, pues muchísimas gracias! como he dicho, me has acotado bastante la situación.

Un saludo.

ResponderCitar
Respondido : 18/12/2018 9:26 pm
Johnny Heredia Montiel
 Johnny Heredia Montiel
Miembro Moderator

Hola,

No es normal que se "auto-elimine", te recomendaría que envíes un ticket a soporte para que realicen un escaneo de la cuenta en caso de que el fichero este en cuarentena.

En cuanto a plugins de seguridad hay muchos, la pregunta sería, que tipo de seguridad necesitas?

ResponderCitar
Respondido : 19/12/2018 2:27 am