Error Advertencia: Declaración de description_walker::start_el después de actualización de PHP

12 dic 2016, 17:44:20
Vistas: 30.6K
Votos: 10

Actualicé mi PHP a 7.0 y después de esto tengo este mensaje en el encabezado de mi sitio web:

Advertencia: La declaración de description_walker::start_el($output, $item, $depth, $args) debe ser compatible con Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) en /homepages/2/d444683358/htdocs/wp-content/themes/zend/functions.php en la línea 59

Aquí está la línea 59 en functions.php:

$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );

No soy programador así que no estoy seguro de qué se necesita hacer para arreglar esto.

Gracias por tu ayuda

1
Comentarios

Probablemente sería mejor reportarlo a los desarrolladores/soporte del tema.

Rarst Rarst
12 dic 2016 17:49:45
Todas las respuestas a la pregunta 1
4
32

El mensaje de error muestra que la clase description_walker extiende la clase Walker_Nav_Menu y sobrescribe el método start_el(), pero la firma difiere de la definición del método en la clase padre.

Como se menciona en los comentarios, lo mejor sería contactar al desarrollador de tu tema y solicitar una versión corregida del mismo.

Si no puedes contactar al desarrollador o realmente deseas corregir el tema tú mismo, puedes hacer lo siguiente. Pero ten en cuenta que cualquier cambio en los archivos del tema se sobrescribirá al actualizar el tema.

Busca en los archivos del tema la definición de la función start_el() dentro de la clase description_walker. La línea de código debería verse similar a esto:

function start_el( $output, $item, $depth, $args ) {

Cambiar esta línea por la siguiente debería hacer que la advertencia desaparezca:

function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
12 dic 2016 18:10:42
Comentarios

¿Entonces, es un problema de límite de versión de PHP? Este problema solo comenzó al migrar el sitio desde otro host con una versión diferente de PHP... Me pareció extraño, no había errores antes... Sin embargo, esta respuesta resolvió la Advertencia, como soy el dueño del tema walker... ¡Gracias por una buena respuesta, tan buena como puede ser!

Jonas Lundman Jonas Lundman
3 nov 2018 16:18:49

@JonasLundman Este problema existía antes de PHP7 pero en versiones anteriores, las advertencias emitidas tenían un nivel de error de E_STRICT. Desde PHP 7 son advertencias normales, por lo tanto se muestran con la configuración predeterminada de nivel de error.

JHoffmann JHoffmann
5 nov 2018 11:13:24

Gracias amigo, me salvaste ;)

hayatbiralem hayatbiralem
5 abr 2019 20:09:39

¡Increíble hermano, gracias!

Siyah Siyah
25 nov 2019 20:58:45