Errore Warning: Dichiarazione di description_walker::start_el dopo l'aggiornamento PHP

12 dic 2016, 17:44:20
Visualizzazioni: 30.6K
Voti: 10

Ho aggiornato il mio PHP alla versione 7.0 e dopo questo ho questo messaggio nell'header del mio sito web:

Warning: Declaration of description_walker::start_el($output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /homepages/2/d444683358/htdocs/wp-content/themes/zend/functions.php on line 59

Questa è la riga 59 in functions.php:

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

Non sono un programmatore quindi non sono sicuro di cosa debba essere fatto per risolvere questo problema?

Grazie per il vostro aiuto

1
Commenti

Sarebbe probabilmente meglio segnalarlo agli sviluppatori/assistenza del tema.

Rarst Rarst
12 dic 2016 17:49:45
Tutte le risposte alla domanda 1
4
32

Il messaggio di errore mostra che la classe description_walker estende la classe Walker_Nav_Menu e sovrascrive il metodo start_el(), ma la firma differisce dalla definizione del metodo nella classe genitore.

Come menzionato nei commenti, sarebbe meglio contattare lo sviluppatore del tuo tema e chiedere una versione corretta del tema.

Se lo sviluppatore non può essere raggiunto o vuoi davvero correggere il tema da solo, puoi fare quanto segue. Tieni presente che qualsiasi modifica ai file del tema verrà sovrascritta durante l'aggiornamento del tema.

Cerca nei file del tema la definizione della funzione start_el() all'interno della classe description_walker. La riga di codice dovrebbe essere simile a questa:

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

Modificando questa riga come segue, l'avviso dovrebbe scomparire:

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

Quindi, è un problema di limite della versione PHP? Questo problema è iniziato solo quando ho spostato un sito da un altro host con una versione PHP diversa... Strano, non c'erano errori prima... Comunque questa risposta ha risolto il Warning, dato che sono il proprietario del tema walker... Grazie per una buona risposta, per quanto buona possa essere!

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

@JonasLundman Questo problema esisteva già prima di PHP7, ma nelle versioni precedenti, i warning generati avevano un livello di errore E_STRICT. Da PHP 7 in poi sono warning normali, quindi vengono mostrati con le impostazioni predefinite del livello di errore.

JHoffmann JHoffmann
5 nov 2018 11:13:24

Grazie amico, mi hai salvato ;)

hayatbiralem hayatbiralem
5 apr 2019 20:09:39

Fantastico amico, grazie!

Siyah Siyah
25 nov 2019 20:58:45