私が運営しているブログの1つは、TCD010というデザインプラスさんの

WordPressテーマを使用しています。

もうかれこれ4年以上前に購入したのですが、コンテンツ数が多くなりすぎて

今さらテーマを変えるのも大変だなあと思い、そのまま使っています。

特に不満も不自由もありませんし。

 

でも、

このブログをエックスサーバーに引っ越ししたらエラーメッセージが出てしまったのです。

それがタイトルにも書いたエラーです。

 

さて、これは何が原因でどう対処すればいいのでしょうか?

エラーの内容

まずは、どういうエラーが出たのか確認しておきます。

正確には、エラーではなく警告となっていますが、

解決しておきたい問題であることには違いありません。

Warning: Declaration of description_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 /home/it-yakyu/southosaka-entre.com/public_html/karappo/wp/wp-content/themes/tcd010/functions.php on line 0

 

メッセージの内容を読んでみると、

”should be compatible with”とありますので、

関数の宣言の書式が変わったんだろうなと推測できます。

 

そして、最後の方にfunction.phpとありますので、

function.php内部にあるdescription_walkerの中にある

start_el()という関数の宣言書式がphp7で変わったのだろうということがわかります。

エラーへの対処方法

前回のsyntax errorのときと同じで、

php7の環境に対応できていないphpのコードがあぶり出されたんですね。

原因がはっきりわかったので、このコードを修正すればよいわけです。

 

実は、デザインプラスさんが開発、販売するTCDシリーズは

2017年の3月にすべてのテーマがphp7に対応したようです。

裏を返せば、それ以前はphp7には対応していなかった。

 

私もテーマのアップデートをしていなかったので、

php7に対応する前のバージョンを使っていました。

だから、問題が起きたわけですね。

 

ということで、これはTCD010を最新バージョンにアップデートすれば

解決できます。

【広告】

phpコードを直接編集するなら

あまりオススメしませんが、phpコードを直接編集する方法もあります。

下に修正前後のfunction.phpのコードの一部を示します。

class description_walkerで検索して、start_el()という関数の引数部分を

警告メッセージ通りに変更してやればOKです。

TCD010 description_walker修正前

修正前のコード

 

 

TCD010 description_walker修正後

修正後のコード

 

ただ、PHPのコードは、中身をよく理解しないまま編集すると

本当にまったく動作しなくなる可能性がありますので、

この方法はオススメしません。

あくまでも参考として見ておいてください。

まとめ

TCD010に起因するエラーであれば、まずは最新バージョンにアップデートすることが

問題解決のために、まずはやるべきことです。

これは、他のテーマであっても同じことが言えます。

 

テーマもプラグインもWordPress本体も、こういった不具合を解消するために

日々アップデート作業を繰り返しているわけですから。

 

そして、最新バージョンにアップデートしてもダメだったら、

Googleで検索するなどして解決方法を探るという手順を踏むのが良いでしょう。

【広告】