wordpress 自定义导航步行者警告

qltillow  于 2024-01-06  发布在  WordPress
关注(0)|答案(1)|浏览(226)

我有自定义导航步行者类,只是添加了一些类,并取代了一些菜单项的URL。菜单显示正确。问题是有很多警告:

PHP Warning:  Attempt to read property "before" on null in /public_html/example.com/wp-includes/class-walker-nav-menu.php on line 273
PHP Warning:  Attempt to read property "link_before" on null in /public_html/example.com/wp-includes/class-walker-nav-menu.php on line 275
PHP Warning:  Attempt to read property "link_after" on null in /public_html/example.com/wp-includes/class-walker-nav-menu.php on line 275
PHP Warning:  Attempt to read property "after" on null in /public_html/example.com/wp-includes/class-walker-nav-menu.php on line 277
PHP Warning:  Attempt to read property "before" on null in /public_html/example.com/wp-includes/class-walker-nav-menu.php on line 273
PHP Warning:  Attempt to read property "link_before" on null in /public_html/example.com/wp-includes/class-walker-nav-menu.php on line 275
PHP Warning:  Attempt to read property "link_after" on null in /public_html/example.com/wp-includes/class-walker-nav-menu.php on line 275
PHP Warning:  Attempt to read property "after" on null in /public_html/example.com/wp-includes/class-walker-nav-menu.php on line 277

字符串

class-walker-nav-menu.php

class Navigation extends Walker_Nav_Menu {
    function start_lvl( &$output, $depth = 0, $args = array() ) {
        $indent = str_repeat( "\t", $depth );
        $output .= "\n$indent<ul class=\"menu submenu\">\n";
    }

    function start_el(&$output, $data_object, $depth = 0, $args = null, $current_object_id  = 0)
    {
        $f_menu = get_field('menu_item', 'option');
        $s_menu = get_field('menu_item_second', 'option');

        if ($data_object->title == $f_menu) {
            $url = get_field('outbreak_plan', 'option');
            $data_object->url = $url['url'];
        } else if ($data_object->title == $s_menu) {
            $url = get_field('covid_updates', 'option');
            $data_object->url = $url['url'];
        }
        parent::start_el($output, $data_object, $depth = 0, $args = null, $current_object_id  = 0);
    }
}


我在这台服务器上有其他网站使用相同的class-walker-nav-menu.php,但没有警告。我如何修复代码或使服务器不显示此文件的警告?

vyu0f0g1

vyu0f0g11#

如果有人有同样的问题,下面是代码应该是这样的:

class Navigation extends Walker_Nav_Menu {
    function start_lvl( &$output, $depth = 0, $args = array() ) {
        $indent = str_repeat( "\t", $depth );
        $output .= "\n$indent<ul class=\"menu submenu\">\n";
    }

    function start_el(&$output, $data_object, $depth = 0, $args = null, $current_object_id  = 0)
    {
        $f_menu = get_field('menu_item', 'option');
        $s_menu = get_field('menu_item_second', 'option');

        if ($data_object->title == $f_menu) {
            $url = get_field('outbreak_plan', 'option');
            $data_object->url = $url['url'];
        } else if ($data_object->title == $s_menu) {
            $url = get_field('covid_updates', 'option');
            $data_object->url = $url['url'];
        }
        parent::start_el($output, $data_object, $depth, $args, $current_object_id);
    }
}

字符串
所以我只需要编辑这行parent::start_el($output, $data_object, $depth, $args, $current_object_id);

相关问题