it-swarm.com.de

Fehler: Die Deklaration von MyClass :: start_lvl () sollte mit der von Walker_Nav_Menu :: start_lvl () kompatibel sein.

Ich arbeite gerade an einer WordPress-Site und wenn ich im Admin auf die Seite Darstellung> Menüs gehe, wird die folgende Fehlermeldung angezeigt:

ErrorException: Laufzeithinweis: Die Deklaration von Walker_Nav_Menu_Edit :: start_lvl () sollte mit der von Walker_Nav_Menu :: start_lvl () in wp-admin/includes/nav-menu.php Zeile 203 kompatibel sein

Es scheint eine Art von PHP Kompatibilitätsproblem zu geben. Ich führe PHP 5.3.10 auf meinem lokalen Entwicklercomputer aus.

Was wäre der beste Weg, um dieses Problem zu beheben?

8
Luke

Von class Walker_Nav_Menu:

function start_lvl( &$output, $depth = 0, $args = array() )

Ihre untergeordnete Klasse muss dieselbe Signatur verwenden: drei Argumente, von denen das erste als Referenz übergeben wird. Jeder Unterschied wird den Fehler auslösen, den Sie haben.

Beachten Sie, dass $args standardmäßig ein leeres Array ist, Sie jedoch eine Instanz von stdClass erhalten, kein Array. Das ist WordPress.

22
fuxia

Ab Klasse Walker_Nav_Menu ersetzen Sie diese Zeilen

function start_el(&$output, $category, $depth, $args) {

zu

function start_el(&$output, $category, $depth = 0, $args = array(), $current_object_id = 0) {

function end_lvl(&$output, $depth, $args) {

zu

function end_lvl(&$output, $depth = 0, $args = array()) {

function start_lvl(&$output, $depth, $args) {

zu

function start_lvl(&$output, $depth = 0, $args = array()) {

function end_el(&$output, $category, $depth, $args) {

zu

function end_el(&$output, $category, $depth = 0, $args = array()) {
5
Mohammad Abedi