Eroare Warning: Declarația description_walker::start_el după actualizarea PHP
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

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

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!

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