WordPress Hilfe – Umstellen älterer Themes auf PHP 8.3 – Declaration of My_Walker_Nav_Menu::start_lvl(&$output, $depth) must be compatible with Walker_Nav_Menu
Hier die Lösung für folgenden Fehler, der bei der Umstellung älterer WordPress Themes auf PHP 8.3 häufiger auftritt, aber einfach zu lösen ist.
Fehlermeldung in den Logs ist wie folgt:
Fatal error: Declaration of My_Walker_Nav_Menu::start_lvl(&$output, $depth) must be compatible with Walker_Nav_Menu::start_lvl(&$output, $depth = 0, $args = null) in XXX/XXXX/functions.php on line XY
Ursache ist eine veraltete Deklaration eines Navigations-Menüs (Walker Menü). Das muss in PHP 8.3 und aktuelle WordPress Version anders angesprochen werden.
In der functions.php ist vermutlich ein Aufruf wie folgt sein. Die entsprechende Zeile laut error Log
class My_Walker_Nav_Menu extends Walker_Nav_Menu {
function start_lvl(&$output, $depth) {
....
Es muss in diesem Fall ersetzt werden:
function start_lvl(&$output, $depth)
Durch
function start_lvl(&$output, $depth = 0, $args = array()) {
Nun sollte der Fehler bereits gelöst sein.
Immer ein Backup vorher machen! Dazu genau achten wie der eigene Aufruf ist laut error log. Es gibt verschiedene Aufrufe.
Mehr Infos zu weiteren veralteten My Walker Aufrufen gibt es hier bei Stackoverflow