错误:MyClass::Start_lvl()的声明应与Walker_Nav_Menu::Start_lvl()的声明兼容

时间:2013-04-09 作者:Luke

我目前正在WordPress网站上工作,每当我在管理中进入“外观>菜单”页面时,我都会遇到以下错误:

错误异常:运行时通知:Walker\\u Nav\\u Menu\\u Edit::start\\u lvl()的声明应与wp admin/includes/Nav Menu中Walker\\u Nav\\u Menu::start\\u lvl()的声明兼容。php第203行

这似乎是某种PHP兼容性问题。我正在本地开发机器上运行PHP 5.3.10。

解决这个问题的最佳方法是什么?

3 个回复
最合适的回答,由SO网友:fuxia 整理而成

从…起class Walker_Nav_Menu:

function start_lvl( &$output, $depth = 0, $args = array() )
您的子类必须使用相同的签名:三个参数,第一个通过引用传递。每一个差异都会引起你的错误。

请注意$args 默认为空数组,但您得到stdClass, 不是数组。这是WordPress。

SO网友:Mohammad Abedi

来自类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()) {

SO网友:Dragut

我的情况也是如此。您会得到旧的nav菜单遍历器代码,它告诉您在启用wp\\U调试时应该做什么(true)

Menu_Frontend::start_lvl(&$output, $depth) should be compatible with Walker_Nav_Menu::start_lvl(&$output, $depth = 0, $args = NULL) in C:\\xampp\\htdocs\\shopnet\\wp-content\\themes\\Viteeo\\hades_framework\\helper\\megamenu.php on line 314

正如您所看到的,您需要更改PHP所指的一些代码行。在上面的错误通知中,您应该将start\\u lvl(&;$output,$depth)替换为start\\u lvl(&;$output,$depth=0,$args=NULL),以便其他进程相同。但别忘了写函数开头标记{在末尾,像这样的空){

结束

相关推荐

Custom menus not showing

作为我上一次关于菜单的未解决查询的后续,这个问题已经进一步扩展。我的菜单没有打印代码中的任何地方。我正在注册菜单功能。php:add_action( \'after_setup_theme\', \'your_newtheme_setup\' ); if ( ! function_exists( \'your_newtheme_setup\' ) ) : function your_newtheme_setup() { if (