サーバーのphpを7.0にした際に出る【Warning: Declaration of My_Walker::start_el〜】の対処方法

サーバーのphpを7.0にした際に出る【Warning: Declaration of My_Walker::start_el〜】の対処方法

WordPressでカスタムメニューの出力をカスタムしようと【Walker_Nav_Menu】のコードをfunction.phpに記述して公開したところ、こんなエラーが。

【 Warning: Declaration of My_Walker::start_el(&$output, $item, $depth, $args) should be compatible with Walker_Nav_Menu::start_el(&$output, $item, $depth = 0, $args = Array, $id = 0) in /xxxxxxxxxxx/wp-content/themes/xxxxx/functions.php on line 0 】

functions.phpは確かにいじっていたけど【php on line 0】にある0行目ってなんじゃそりゃ。。。
調べてみるとサーバーのphpが7.0の場合に出るみたいですね。

英語サイトが結構出てきますがざっくりの翻訳だとこんな感じ。
“このエラーメッセージは、クラスdescription_walkerがWalker_Nav_Menuクラスを拡張し、start_el()メソッドをオーバーライドするが、署名が親クラスのメソッド定義と異なることを示しています。”
簡単に言うと“親のクラスと引数を合わせてね”みたいなことを言っています。

具体的な対処方法は以下の通りです。

//これを
function start_el(&$output, $item, $depth, $args) {
 
//このように変更
function start_el(&$output, $item, $depth = 0, $args = Array(), $id = 0) {

これでエラーメッセージが消えました。

いろんなサーバーでサイトを作成してますが今のところこのエラーが出たのはxserverくらいですね。
エラーが表示されてしまうとかなり焦りますが、解決方法はちゃんとあるので落ち着いて対処しましょう。

SPONSORED LINK

CONTACT

ご意見やご感想、お仕事のご依頼など
お気軽にご連絡ください。

CONTACT FORM