Wordpress

【WordPress】WP_Widgetのコンストラクターメソッドの非推奨エラーの解消方法

こんにちは、シロウです。

今日、ウィジットに項目を追加しようと思って、色々と調べつつコードをぺたぺたとコピペしたりしてると、下記のエラーにでくわしました。

Deprecated:My_Widgetで呼び出されたWP_Widgetのコンストラクターメソッドはバージョン4.3.0から非推奨になっています ! 代わりに __construct() を使ってください。

見ての通り、WP_Widget(コンストラクターメソッド)が非推奨だから__construct()に置き換えてくださいってことですね。

あとコンストラクター名も変更しないとです。

記事にするほどでもないかもしれませんが、一応解消できたので方法を解説しておきます(*・ω・)ノ

WP_Widgetを__construct()に置き換える

僕の場合は下記のようなメソッドを記述していました。

class My_Widget extends WP_Widget
{
    //コンストラクタ
    //自作ウィジェットを登録するみたいな感じ
    public function My_Widget()
    {
        parent::WP_Widget(
            false,
            $name = 'オススメ記事',
            array( 'description' => 'サイドバーに表示する記事を設定', )
        );
    }

      ~~~~~~~~~中略~~~~~~~
}

なので、この「My_Widget」と「WP_Widget」を書き換えてあげればいいだけですね。

書き換えると下記のようになります。

class My_Widget extends WP_Widget
{
    //書き換え
    public function __construct()
    {
        //書き換え
        parent::__construct(
            false,
            $name = 'オススメ記事',
            array( 'description' => 'サイドバーに表示する記事を設定', )
        );
    }

これで無事にエラーも消えました☺️

非推奨のコードは使わないに限る

今回コピペで非推奨コードを使ってしまっていた僕が言うのも何ですが、非推奨コードはやはりできる限り使わないようにしましょうw

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

https://www.php.net/manual/ja/language.oop5.decon.php

PHPの公式リファレンスにも上記のように書かれていまして、将来古いコンストラクタが削除されて、今まで正常に動いていたのに突然おかしくなる・・・とか凄く面倒ですからね。

暇な時間を見つけて、非推奨コードをさっと見ておくだけでも割といいかもと思う日でした。

さて、今回はこれにて終了します。それではまたっ(*・ω・)ノ