web-dev-qa-db-fra.com

Avertissement/Avis sur functions.php

J'ai des problèmes avec la notification affichée en haut de la page d'accueil en tant que:

Remarque: load_plugin_textdomain a été appelé avec un argument obsolète depuis la version 2.7 sans alternative disponible. dans .../wordpress/wp-includes/functions.php à la ligne 2925

Le code de cette ligne est quelque chose à propos de $wpsmiliestrans:

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

Si je supprime ce code, le problème apparaît à la ligne 2924, qui est un autre code sur les smileys, et il existe des dizaines de ces types de code. Comment puis-je me débarasser de cela?
J'ai mis à jour le logiciel avec la dernière version.

3
Ada

';)' => 'icon_wink.gif', est à la ligne 2477 dans la version actuelle, vous ne devez jamais modifier ou supprimer des fichiers de base, à moins que vous ne sachiez exécuter une branche privée de WordPress.

La ligne 2925 est la deuxième trigger_error() dans cette fonction:

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 ) );
    }
}

C’est juste l’endroit où se trouve l’avis, pas le lieu de votre erreur.

Examinons load_plugin_textdomain(); voici le vrai problème:

/**
 * 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 );
}

Le message d'erreur que vous obtenez peut être traduit par:

Un plugin utilise load_plugin_textdomain() et il passe pas falsecomme second argument de cette fonction.

Le plugin a cinq ans de retard sur la norme actuelle.

Solution

  1. Désactiver tous les plugins.
  2. Réactivez chaque plugin séparément, jusqu'à ce que l'erreur se reproduise. C’est un plugin cassé.
  3. Mettez à jour votre question ou écrivez une réponse et nommez ce plugin pour que les autres lecteurs puissent apprendre quelque chose.
  4. Écrivez un court message à l'auteur du plugin, si elle est toujours là, pour que le problème soit résolu.
7
fuxia