Ошибка: Объявление MyClass::start lvl() должно быть совместимо с объявлением навигационного меню Walker::start lvl()


В настоящее время я работаю на сайте WordPress, и всякий раз, когда в администраторе я захожу на страницу Внешний вид > Меню, я получаю следующую ошибку:

Исключение ошибки: Уведомление о времени выполнения: Объявление Walker_Nav_Menu_Edit::start_lvl() должно быть совместимо с объявлением Walker_Nav_Menu::start_lvl() в wp-admin/includes/nav-menu.php строка 203

Похоже, это какая-то проблема с совместимостью PHP. Я запускаю PHP 5.3.10 на своей локальной машине разработчика.

Что был бы лучший способ решить эту проблему?

Author: fuxia, 2013-04-09

3 answers

Из class Walker_Nav_Menu:

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

Ваш дочерний класс должен использовать одну и ту же подпись: три аргумента, первый из которых передается по ссылке. Каждое различие приведет к появлению ошибки, которую вы получили.

Обратите внимание, что $args по умолчанию используется пустой массив, но вы получаете экземпляр stdClass, а не массив. Это WordPress.

 25
Author: fuxia, 2015-01-08 11:20:25

Из класса Walker_Nav_Menu замените эти строки

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

До

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

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

До

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

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

До

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

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

До

function end_el(&$output, $category, $depth = 0, $args = array()) {
 12
Author: Mohammad Abedi, 2017-09-23 10:09:07

То же самое было и в моем случае. Вы получаете старые коды навигационного меню, и в нем говорится, что вам следует делать, когда вы включаете wp_debug(true)

Menu_frontend::start_lvl(&$вывод, $глубина) должен быть совместим с Walker_Nav_Menu::start_lvl(&$вывод, $глубина =0, $args =NULL) в C:\xampp\htdocs\shopnet\wp-content\themes\Viteeo\hades_framework\helper\megamenu.php в режиме онлайн 314

Как вы можете видеть, вам нужно изменить некоторые строки кода, на которые ссылается PHP. В приведенном выше уведомлении об ошибке вы должны заменить start_lvl(&$вывод, $глубина) на start_lvl (&$вывод, $глубина = 0, $args = NULL) так что другие процессы те же самые. Но не забудьте написать открывающий тег функции {в конце, как этот NULL) {

 0
Author: Dragut, 2020-04-05 11:54:09