Que fait l10n.js dans WordPress 3.1? Et comment puis-je le supprimer?

8

Je viens d'installer WP 3.1 Beta 2 sur mon serveur de test. J'ai remarqué qu'il est livré avec un nouveau l10n.jsfichier qui est automatiquement inséré dans l'en-tête.

J'ai creusé un peu et cela a quelque chose à voir avec la localisation. Je suppose que beaucoup de gens ne l'utilisent pas, alors je me demande comment je pourrais le supprimer?

S'il est important de ne pas le supprimer, faites-le moi savoir également.

Sahas Katta
la source

Réponses:

12

Il contient la convertEntities()fonction qui (comme son nom l'indique) convertit les entités HTML à leur valeur réelle. Il est principalement utilisé pour les scripts qui envoient des données de localisation de PHP au côté JS en utilisant wp_localize_script(). Recherchez simplement l10n_print_afterdans la base de code et vous le voyez beaucoup.

Les données que vous ajoutez wp_localize_script()sont ajoutées avant le script qu'elles traduisent (elles doivent l'être, car elles y sont référencées). Cependant, si vous utilisez un concaténateur de script (vous n'avez donc qu'une seule demande qui retourne tous les fichiers JS utilisés), ce fichier sera également appelé après toutes les données localisées - mais maintenant il convertEntities()n'est pas défini lorsque nous en avons besoin. Pour cette raison, cette fonction est séparée du utils.jsfichier général et ajoutée avec une priorité élevée en haut.

Pour cette raison, vous ne devez pas le supprimer: tous les scripts qui utilisent des chaînes traduisibles l'utilisent (même s'ils sont toujours en anglais), et vous risquez de casser des endroits qui ont encore des entités.

Jan Fabry
la source
1
Merci d'avoir si bien élaboré! :) J'ai encore quelques questions. Ma principale préoccupation est simplement d'ajouter une autre demande inutile pour chaque utilisateur sur le front-end. Les seuls utilisateurs JS voient est mon propre simple scripts.jset jquery. Cela ne me dérange pas que l10n apparaisse dans le tableau de bord WP, ​​mais le site sur lequel je travaille reçoit une grande quantité de trafic et je suis très difficile à garder tout optimisé. Quelqu'un a mentionné une barre d'administration comme cause, mais seulement quelques auteurs pour le site. Je me fiche que cela les affecte, je ne veux pas que cela ralentisse le reste du site. Que proposez-vous de faire?
Sahas Katta
1
Il semble donc que le wp_register_scriptdéclenchement l10n.jsse charge même si j'ai des .jsfichiers ZERO mis en file d'attente. Cela ne me dérange pas si cela se charge pour les auteurs, qui sont à faible trafic, mais il se charge sur les pages publiques pour les visiteurs réguliers même si je ne javascriptleur sert pas . Même si je devais avoir besoin d'un script comme celui jquery-ci, il ne devrait pas en dépendre utils.js. Cela n'a jamais été le cas pour le front-end au moins.
Sahas Katta
4
if ( !is_admin() ) {
function my_init_method() {
wp_deregister_script( 'l10n' );
}
add_action('init', 'my_init_method'); 
}

utilisez le code ci-dessus pour désenregistrer l10n.js dans function.php

ZHAO Xudong
la source
1

Il semble qu'il soit inclus lorsque vous mettez en file d'attente le script «commentaire-réponse». Notez que vous voulez probablement vous assurer que «commentaire-réponse» est chargé uniquement sur les pages, les commentaires pourraient être activés (par exemple, vérifiez is_singular()avant de mettre le script en file d'attente).

mtekk
la source
Hmm, je ne pense pas que cela ait quoi que ce soit à voir avec le comment-replyscript. Je ne l'ai pas du tout mis en file d'attente sur mon site de test pour le moment. Il apparaît sur toutes les pages du site. J'ai même repassé WP 3.0.3 pour tester et ça s'en va. Revient si je lance la nouvelle version bêta 3.1 3.1
Sahas Katta
Je ne le vois que sur les pages qui font la queue comment-replysur mes deux bancs d'essai exécutant la version SVN trunk de WordPress.
mtekk
1

J'ai trouvé sur mon installation que ce script était chargé à côté de la nouvelle barre d'administration, se débarrasser de la barre d'administration s'est débarrassé des l10n.js pour moi (mais je pense que la réponse de Jan est plus en ligne avec la réponse au "pourquoi").

Retirer la barre était facile ..

remove_action( 'init', 'wp_admin_bar_init' );

Cela ne répond pas réellement à la question (comme en témoignent les autres réponses), mais au cas où quelqu'un voudrait supprimer cette horrible barre, voici comment vous le faites.

t31os
la source
Hmm quelque chose d'autre dans mon code le déclenche également. J'ai créé un thème super basique avec juste header/footer/index/sidebar.phpet cette action de suppression a résolu le problème. Mais sur mon thème habituel, même si je supprime toutes les files d'attente, il continue de se charger. J'ai ZERO javascript dans WP head / footer en dehors de google analytics qui est de toute façon codé en dur dans le modèle.
Sahas Katta
1
Avec le thème par défaut activé, aucun plugin (ou minimal), je ne vois absolument aucun script chargé en face avant lorsque je supprime la barre d'administration. Je pense que Jan a publié des informations cruciales concernant quand et pourquoi ce script est appelé (je ne parlais que de le supprimer et j'ai publié ce que j'ai trouvé efficace).
t31os
Bon alors voici ce que j'ai trouvé après un peu plus d'expérimentation. J'avais quelques wp_register_scriptdéclarations dans mon functions.php. Cela se déclenche l10n.jsmême si je ne mets jamais en file d'attente aucun .jsfichier. J'ai également désactivé la barre d'administration!
Sahas Katta
1

Comment l' enlever :

fonction kill_l10n () {
    if (! is_admin ())
        wp_deregister_script ('l10n');
}
add_action ('wp_print_scripts', 'kill_l10n');

Déposer dans functions.php ou autre (plugin, etc.)

Travaille pour moi.


la source
1

Pour le supprimer, ajoutez ce qui suit au fichier functions.php de votre thème.

wp_deregister_script ('l10n');


la source
0

La source du développeur pour le fichier a la description suivante:

// Utilisé pour s'assurer que les entités utilisées dans les chaînes L10N sont correctes

et la note de validation dit:

Déplacez la fonction d'assistance l10n dans un fichier js séparé afin que nous puissions toujours le produire en premier.

Je n'avais pas encore joué avec 3.1, donc je ne sais pas ce qui peut le charger dans chaque page.

Rarst
la source
Ouais, j'ai trouvé ce fichier, mais je n'ai pas trouvé plus de détails. Je pensais que quelque chose d'étrange dans mon thème le déclenchait. J'ai donc essayé le thème vingtten par défaut et il l'avait aussi. On dirait qu'il est wp_head
intégré
0

Oui, il est jeté automatiquement dans le thème par wp_head ... Je le supprime en plaçant le code ci-dessous dans les fonctions du thème.php

remove_action( 'wp_head', 'l10n' );

Jack
la source