Ich konnte in Java-Skripten des Plugins kein defer-Tag hinzufügen. Der Pagespeed-Test des Google-Entwicklers schlägt vor, in Kontaktformular 7 javascripts das Tag defer hinzuzufügen .
So enthält das Kontaktformular 7 Javascript in der Kopfzeile.
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' );
}
Wie fügt man nun das Tag defer = "defer" im obigen Code hinzu?
Antworten:
Ab Wordpress 4.1 gibt es einen Filter:
script_loader_tag
. Sie können es verwenden, um das richtige Skript zu finden:Alte Antwort
Es ist kein dedizierter Filter verfügbar. Wenigstens kann ich keinen sehen. Aber …
wp_print_scripts()
AnrufeWP_Scripts->do_items()
WP_Scripts->do_item()
esc_url()
'clean_url'
.Und es geht los:
Einschränkung: nicht getestet, nur eine Idee. :)
Aktualisieren
Ich habe ein Plugin mit diesem Code geschrieben und getestet . Siehe https://gist.github.com/1584783
quelle
'
auf beiden Seiten des zurückgegebenen Strings ein,"
was zu ungültigem HTML führen würde.if( ! is_admin() ){}
bereitet Ihnen die Verwendung beliebter Plugins wie ACF Kopfzerbrechen.