Error Advertencia: Declaración de description_walker::start_el después de actualización de PHP
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

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 ) {

¿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!

@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.
