it-swarm-pt.tech

Erro: Declaração de MyClass :: start_lvl () deve ser compatível com o de Walker_Nav_Menu :: start_lvl ()

Atualmente estou trabalhando em um site WordPress e sempre que no admin eu vou na página Aparência> Menus eu recebo o seguinte erro:

ErrorException: Aviso de tempo de execução: A declaração de Walker_Nav_Menu_Edit :: start_lvl () deve ser compatível com a de Walker_Nav_Menu :: start_lvl () na linha wp-admin/includes/nav-menu.php 203

Parece algum tipo de problema de compatibilidade PHP. Estou executando o PHP 5.3.10 na minha máquina dev local.

Qual seria a melhor maneira de resolver este problema?

8
Luke

De class Walker_Nav_Menu:

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

Sua classe filha deve usa a mesma assinatura: três argumentos, o primeiro passado por referência. Toda diferença vai aumentar o erro que você tem.

Observe que o $args é padronizado para uma matriz vazia, mas você obtém uma instância de stdClass, não uma matriz. Este é o WordPress.

22
fuxia

Da classe Walker_Nav_Menu substitua estas linhas

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

para

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

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

para

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

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

para

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

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

para

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