呼び出された WP_Widget のコンストラクターメソッドはバージョン 4.3.0 から非推奨になっています。その対処法。

WordPressをCMSとして利用することが多くなっていますが、
8月にWordPress4.3.0にアップデートしてから自作テーマなどで

「Notice: 呼び出された WP_Widget のコンストラクターメソッドはバージョン 4.3.0 から非推奨になっています! 代わりに

__construct()

を使ってください」

とエラーメッセージが出まくり^^;  でした。

最近まで、仕事&私ごとで忙しく、とりあえずデバッグモードを「false」にして
【見なかったことにしよう(よくないんですけど。。。)】的な対処をしておりましたが、
これではやっぱり消極的対処であって、完全に修正しきれているわけではありません。

WordPress 4.3 Notice Error

上記のサイトページを参考にさせていただきました。

PHP4形式のコンストラクタの記述が非推奨となるため、
PHP4形式の クラス コンストラクタ の記述を、PHP5の __construct に書き換えるように促しているようです。

とのこと。
当方の場合、オリジナルのウィジェット定義をfunction.php内で設定していたので、その部分の修正が必要になっていました。
《対応メモ》

// WP_Widget クラスを継承するサブクラスとして定義
class My_RecentPosts_Widget extends WP_Widget {
    // コンストラクタ
    function My_RecentPosts_Widget() {
        // ウィジェットの初期設定
        $widget_opts = array('classname' => 'my_recent_posts_widget', 'description' => '特定カテゴリの最新の投稿タイトル一覧を表示。カテゴリーIDを指定してください。' );
        $control_opts = array('width' => 200, 'height' => 300);
        $this->WP_Widget('MyRecentPostsWidget', '特定のカテゴリー最近の投稿', $widget_opts, $control_opts);
    }

$this->WP_Widget() の箇所を
parent::__construct() に修正すると、今まで表示されていたエラーメッセージはキチンと消えました。

WordPress案件でお客様にすでに納品している場合も、ごくたまーに
テスト環境でWordPress デバッグモードで

define('WP_DEBUG', true);

のままになっていることがあるかもしれません。
参考になれば幸いです♪



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です