web-dev-qa-db-ja.com

Functions.phpに関する警告/通知

ホームページの上部に表示される通知について問題があります。

Notice:load_plugin_textdomainは、バージョン2.7以降廃止予定の引数を指定して呼び出されましたが、代替手段はありません。 2925行目の.../wordpress/wp-includes/functions.php

この行のコードは$wpsmiliestransに関するものです。

';)' => 'icon_wink.gif',

このコードを削除すると、2924行目に問題が表示されます。これは、スマイリーに関する別のコードです。どうすればこれを取り除くことができますか?
ソフトウェアを最新バージョンにアップデートしました。

3
Ada

';)' => 'icon_wink.gif',は現在のバージョンの2477行目にあります、あなたがWordPressのプライベートブランチを実行する方法を知らない限り、あなたはただコアファイルを変更したり削除してはいけません。

行2925は、この関数の2番目のtrigger_error()です。

function _deprecated_argument( $function, $version, $message = null ) {

    do_action( 'deprecated_argument_run', $function, $message, $version );

    // Allow plugin to filter the output error trigger
    if ( WP_DEBUG && apply_filters( 'deprecated_argument_trigger_error', true ) ) {
        if ( ! is_null( $message ) )
            trigger_error( sprintf( __('%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s! %3$s'), $function, $version, $message ) );
        else
            trigger_error( sprintf( __('%1$s was called with an argument that is <strong>deprecated</strong> since version %2$s with no alternative available.'), $function, $version ) );
    }
}

それは通知がある場所であり、エラーの場所ではありません。

load_plugin_textdomain()を見てみましょう。これが本当の問題です:

/**
 * Loads the plugin's translated strings.
 *
 * If the path is not given then it will be the root of the plugin directory.
 * The .mo file should be named based on the domain with a dash, and then the locale exactly.
 *
 * @since 1.5.0
 *
 * @param string $domain Unique identifier for retrieving translated strings
 * @param string $abs_rel_path Optional. Relative path to ABSPATH of a folder,
 *  where the .mo file resides. Deprecated, but still functional until 2.7
 * @param string $plugin_rel_path Optional. Relative path to WP_PLUGIN_DIR. This is the preferred argument to use. It takes precedence over $abs_rel_path
 */
function load_plugin_textdomain( $domain, $abs_rel_path = false, $plugin_rel_path = false ) {
    $locale = apply_filters( 'plugin_locale', get_locale(), $domain );

    if ( false !== $plugin_rel_path ) {
        $path = WP_PLUGIN_DIR . '/' . trim( $plugin_rel_path, '/' );
    } else if ( false !== $abs_rel_path ) {
        _deprecated_argument( __FUNCTION__, '2.7' );
        $path = ABSPATH . trim( $abs_rel_path, '/' );
    } else {
        $path = WP_PLUGIN_DIR;
    }

    $mofile = $path . '/'. $domain . '-' . $locale . '.mo';
    return load_textdomain( $domain, $mofile );
}

表示されるエラーメッセージは、次のように翻訳されます。

プラグインはload_plugin_textdomain()を使用していて、その関数の2番目の引数としてnot falseを渡します。

プラグインは現在の標準から5年遅れています。

溶液

  1. すべてのプラグインを無効にします。
  2. エラーが戻ってくるまで、各プラグインを別々に再度有効にします。それは壊れたプラグインです。
  3. 他の読者が何かを学ぶことができるように、あなたの質問を更新するか、答えを書き、そしてそのプラグインに名前を付けてください。
  4. プラグインの作者に短いメッセージを書いてください。まだ問題が解決していない場合は修正してください。
7
fuxia