Je ne pouvais pas ajouter de balise defer dans les javascripts du plugin. Le test de vitesse des développeurs Google me suggère d'ajouter une balise defer dans le formulaire de contact 7 javascripts.
C'est ainsi que le formulaire de contact 7 inclut javascript dans l'en-tête.
add_action( 'wp_enqueue_scripts', 'wpcf7_enqueue_scripts' );
function wpcf7_enqueue_scripts() {
// jquery.form.js originally bundled with WordPress is out of date and deprecated
// so we need to deregister it and re-register the latest one
wp_deregister_script( 'jquery-form' );
wp_register_script( 'jquery-form', wpcf7_plugin_url( 'jquery.form.js' ),
array( 'jquery' ), '2.52', true );
$in_footer = true;
if ( 'header' === WPCF7_LOAD_JS )
$in_footer = false;
wp_enqueue_script( 'contact-form-7', wpcf7_plugin_url( 'scripts.js' ),
array( 'jquery', 'jquery-form' ), WPCF7_VERSION, $in_footer );
do_action( 'wpcf7_enqueue_scripts' );
}
Maintenant, comment ajouter la balise defer = "defer" dans le code ci-dessus?
Réponses:
A partir de WordPress 4.1 il y a un filtre:
script_loader_tag
. Vous pouvez l'utiliser pour trouver le bon script:Ancienne réponse
Il n'y a pas de filtre dédié disponible ... au moins je ne peux pas en voir un. Mais …
wp_print_scripts()
appelsWP_Scripts->do_items()
WP_Scripts->do_item()
esc_url()
'clean_url'
.Et c'est reparti:
Attention: non testé, juste une idée. :)
Mise à jour
J'ai écrit et testé un plugin avec ce code. Voir https://gist.github.com/1584783
la source
'
deux côtés de la chaîne retournée, un"
résultat en HTML non valide.if( ! is_admin() ){}
plugins populaires comme ACF pourrait vous donner des maux de tête.