Não pude adicionar a tag deferir nos javascripts do plug-in. O teste de velocidade da página do desenvolvedor do Google sugere que eu adicione a tag deferida no formulário de contato 7 javascripts.
É assim que o formulário de contato 7 inclui javascript no cabeçalho.
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' );
}
Agora, como adicionar a marca defer = "defer" no código acima?
Respostas:
A partir do WordPress 4.1, há um filtro:
script_loader_tag
. Você pode usá-lo para encontrar o script correto:Resposta antiga
Não há filtro dedicado disponível ... pelo menos não consigo ver um. Mas …
wp_print_scripts()
chamadasWP_Scripts->do_items()
WP_Scripts->do_item()
esc_url()
'clean_url'
.E aqui vamos nós:
Advertência: não testado, apenas uma idéia. :)
Atualizar
Eu escrevi e testei um plugin com este código. Consulte https://gist.github.com/1584783
fonte
'
nos dois lados da string retornada,"
resultaria em HTML inválido.if( ! is_admin() ){}
plugins populares como o ACF possa causar dor de cabeça.