Eroare Warning: Declarația description_walker::start_el după actualizarea PHP

12 dec. 2016, 17:44:20
Vizualizări: 30.6K
Voturi: 10

Am actualizat PHP la versiunea 7.0 și după aceasta am acest mesaj în header-ul site-ului meu:

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

Aici este linia 59 din functions.php:

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

Nu sunt programator așa că nu sunt sigur ce trebuie făcut pentru a repara această eroare?

Mulțumesc pentru ajutor

1
Comentarii

Cel mai bine ar fi să raportezi problema dezvoltatorilor/echipei de suport a temei.

Rarst Rarst
12 dec. 2016 17:49:45
Toate răspunsurile la întrebare 1
4
32

Mesajul de eroare indică faptul că clasa description_walker extinde clasa Walker_Nav_Menu și suprascrie metoda start_el(), dar semnătura metodei diferă de definiția din clasa părinte.

Așa cum s-a menționat în comentarii, cea mai bună soluție ar fi să contactați dezvoltatorul temei dumneavoastră și să cereți o versiune corectată a acesteia.

Dacă dezvoltatorul nu poate fi contactat sau dacă doriți să corectați singur tema, puteți face următoarele. Dar rețineți că orice modificare adusă fișierelor temei va fi suprascrisă la actualizarea acesteia.

Căutați în fișierele temei definiția funcției start_el() din clasa description_walker. Linia de cod ar trebui să arate similar cu aceasta:

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

Modificarea acestei linii în următoarea formă ar trebui să elimine avertismentul:

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

Deci, este o problemă legată de versiunea PHP? Această problemă a apărut doar când am mutat site-ul de la alt host cu o versiune diferită de PHP... Ciudat, nu aveam erori înainte... Oricum, acest răspuns a rezolvat Warning-ul, deoarece eu sunt proprietarul temei walker... Mulțumesc pentru un răspuns cât se poate de bun!

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

@JonasLundman Această problemă a existat înainte de PHP7, dar în versiunile anterioare, warning-urile emise aveau un nivel de eroare E_STRICT. Începând cu PHP 7, acestea sunt warning-uri normale, de aceea sunt afișate cu setările implicite ale nivelului de eroare.

JHoffmann JHoffmann
5 nov. 2018 11:13:24

Mulțumesc, prietene, m-ai salvat ;)

hayatbiralem hayatbiralem
5 apr. 2019 20:09:39

Super omule, mulțumesc!

Siyah Siyah
25 nov. 2019 20:58:45