WordPress で PHP7.0にアップデートしたら start_lvl() と start_el() でエラーが出た場合の対処法


Php7.0 にアップデートしたら WordPress のテーマファイルで以下のようなエラーが発生しました。今回はこのエラーの解消法をご紹介します。

Warning: Declaration of walker_nav_menu::start_lvl() should be compatible with Walker_Nav_Menu::start_lvl(&$output, $depth = 0, $args = Array) in /var/www/wp-content/themes/mytheme/functions.php on line 0

親のクラスと異なる引数を使っているため同じ引数にしてくださいってことらしいのでエラーに合わせて修正していきます。

start_lvl の引数を修正

テーマの functions.php を開きエラーが出ている行に移動します。start_lvl()でエラーが出ているようなのでそこを修正します。

以下の記述を変更します。

start_lvl( &$output, $depth )

エラーの指摘にあわせて以下のように変更します。

start_lvl( &$output, $depth = 0, $args = Array() )

注意点としては「Array」をエラーの通り 「$args = Array」と記述するとエラーになりますので、「$args = Array()」と記述しましょう。

start_el の引数を修正


Warning: Declaration of themeslug_walker_nav_menu::start_el() should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /var/www/wp-content/themes/mytheme/functions.php

start_el のエラーもこの記述を、

start_el( &$output, $item, $depth, $args )

 

以下のように修正するとエラーが解消されます。

start_el( &$output, $item, $depth = 0, $args = Array(), $id = 0)

参考サイト
php7.0にUpしたら、警告です。

コメントを残す