The called constructor method for WP_Widget is deprecated since version 4.3.0! Use __construct()instead。 エラー

Last Updated:2023年07月17日| | コメントを残す

최근 WordPress 4.3.0に更新しながら、いくつかのテーマやプラグインでは、次のようなエラーが発生する可能性があります。

Strict Standards:call_user_func_array()expects parameter 1 to be a valid callback、non-static method wf_ftw :: widgets_init()should not be called statically in / home2 / dbname / public_html /wordpress/ wp-includes /plugin503行目の.php

Notice:The called constructor method for WP_Widget is deprecated since version 4.3.0! Use __construct()instead。

この問題は、WP_Widgetのcontructorメソッドが4.3.0から使用されていないため、__construct()を代わりに使用しするように警告メッセージです。

WordPressこの更新プログラムの制作者に公知したため、大部分がブブンガ解決されますが、たまにそうでないテーマやプラグインであんなメッセージが表示されるようです。

この場合、別の問題がなければ、簡単にDebugメッセージを表示しないようにwp-config.phpファイル(WordPressがインストールされてRootフォルダに)で

define('WP_DEBUG', true);

部分を次のように変更します(true-> false):

define('WP_DEBUG', false);

その後、エラーメッセージが表示されません。

または、次のようなコードを関数ファイルに追加すると、より簡単に、このエラーメッセージが表示されません。

add_filter('deprecated_constructor_trigger_error', '__return_false');

この問題を解決したい場合は、以下の変更例を参考にしてください。 WP _Widget()関数の部分を__construct()に置き換えて、テストしてみてください。

class Flickr_Widget extends WP_Widget {

function Flickr_Widget()
{
//

$ this-> WP_Widget( 'flickr-widget'、 'Pro:Flickr Widget'、$ widget_ops、$ control_ops);
}

このコードを次のように変更します:

    class Flickr_Widget extends WP_Widget {

function __construct()    {
//

parent :: __ construct( 'flickr-widget'、 'Pro:Flickr Widget'、$ widget_ops、$ control_ops);
}

別の例を一つましょうか?

class GoogleAdsensePlugAndPlayWidget extends WP_Widget
{
function GoogleAdsensePlugAndPlayWidget()
{
$widget_ops = array('classname' => 'GoogleAdsensePlugAndPlayWidget', 'description' => 'Adsense Plug & Play - Sidebar add' );
$ this->WP_Widget(「GoogleAdsensePlugAndPlayWidget」、「Adsense Plug&Play - Sidebar add」、$ widget_ops);
}
// ...........
}

下記のように変更するようにします。

class GoogleAdsensePlugAndPlayWidget extends WP_Widget
{
function __construct()
{
$widget_ops = array('classname' => 'GoogleAdsensePlugAndPlayWidget', 'description' => 'Adsense Plug & Play - Sidebar add' );
parent :: __ construct(「GoogleAdsensePlugAndPlayWidget」、「Adsense Plug&Play - Sidebar add」、$ widget_ops);
}
// ...........
}

要約すると、 "Use __construct() instead." エラーメッセージが表示されたら、まず機能面で問題がないことを確認してください。 使用に問題がない場合は、単にwp-config.phpのdebug表示部分をfalseに変更するか、add_filterを使用してこのメ​​ッセージのみを表示しないようにすることができます。 機能に問題がある場合は、テーマやプラグインの作成者に連絡して問題を解決してください。


コメントを残す

コメント