WordPresss4.0から5.0.3へのバージョンアップでエラー

とあるお仕事でWordPressのバージョンが古すぎて不安なので、バージョンアップを行ってほしいという依頼を受けました。その際にテーマファイルでウィジェットの定義をしている箇所で非推奨のエラーが発生していたので、その対処法をメモ。エラーの内容は以下の通り。

Notice:
[xxxxxxxx(メソッド名)] で呼び出された WP_Widget のコンストラクターメソッドはバージョン 4.3.0 から非推奨になっています !
代わりに__construct()を使ってください。
in C:\xampp\htdocs\wp-theme\wp-includes\functions.php on line 3986

コンストラクター名の書き換え

まずはコンストラクターそのものの書き換え。コンストラクターをクラス名で指定してあったので、マジックメソッド__construct()に書き換えました。

class My_Widget extends WP_Widget {
  public function My_Widget() {

  }
}
class My_Widget extends WP_Widget {
  public function __construct() {

  }
}

これでOK。

親クラスのコンストラクター呼び出しのエラー解消

WordPressのウィジェットを拡張する際にWP_Widgetクラスを継承して作成します。その際に親クラスのコンストラクターを呼び出すのですが、その記述もマジックメソッドで書き換えます。

class My_Widget extends WP_Widget {
  public function My_Widget() {
    $this->WP_Widget( $base_id, $widget_name, $option );
  }
}
class My_Widget extends WP_Widget {
  public function __construct() {
    parent::__construct( $base_id, $widget_name, $option );
  }
}

できた!\(^o^)/
これでNoticeエラーが解消されました。

PHP7から非推奨になるものは早めに対処

PHPのマニュアルサイトにも書いていますけど、PHP7から非推奨になるのでWordPress云々ではないから対応しましょう。以下、マニュアルサイトからの抜粋。

警告
古い形式のコンストラクタは PHP 7.0 で 非推奨 となりました。 将来のバージョンで削除されるでしょう。新しいコードでは常に __construct() を使うべきです。

引用:PHP: コンストラクタとデストラクタ – Manual

今回のエラーは、「PHP 7.0.x で推奨されなくなる機能」での内容でした。PHPのバージョン、WordPressのバージョンアップ時はきちんとチェックするクセをつけようと思います。
やっているつもりではありますけど (;^_^A