Blog

Beiträge, Snippets, Tipps & Tricks
rund um Webdesign, SEO & Co.

Contact Form 7: Scripte nur laden, wenn benötigt

von • Themen: , , ,
Contact-Form-7-WordPress

Das beliebte Kontaktformular-Plugin Contact Form 7 lädt die für die einwandfreie Funktionalität der Formulare benötigten Scripte auf jeder Seite. Der Performance wegen sollte man Scripte generell aber immer nur dann laden, wenn sie wirklich benötigt werden. Wie das bei Contact Form 7 funktioniert, erklärt dieser Artikel.

Auch wenn das weitverbreitete Kontaktformular-Plugin für WordPress seine Javascript-Dateien ordnungsgemäß im Fußbereich integriert, sollte man stets darauf achten, entsprechende Scripte nur dann zu laden, wenn diese auch tatsächlich zum Einsatz kommen – das gilt natürlich auch für andere Plugins und sonstige Scripte.

Contact Form 7 nur auf Kontaktseite laden

Im Falle des Kontaktformular-Plugins Contact Form 7 lässt es sich mit nur wenigen Handgriffen bewerkstelligen, dass die benötigten Scripte beispielsweise nur auf der Kontaktseite integriert und somit beim Aufruf geladen werden. Dazu müssen die Javascript- und CSS-Datei des Plugins zunächst einmal „deaktiviert“ werden, indem folgender Code-Snippet in der functions.php des verwendeten Themes Platz findet.

add_filter( 'wpcf7_load_js', '__return_false' );
add_filter( 'wpcf7_load_css', '__return_false' );

Anschließend muss man mit dem nachstehenden Snippet definieren, auf welcher Seite die Scripte geladen werden sollen. Je nach Theme gibt es für die Kontaktseite beispielsweise ein eigenes Seiten-Template (beispielsweise template-contact.php), in das der Code eingefügt (innerhalb von <?php und ?>) wird.

if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
   wpcf7_enqueue_scripts();
}
if ( function_exists( 'wpcf7_enqueue_styles' ) ) {
   wpcf7_enqueue_styles();
}

Sollte kein eigenes Page-Template zur Verfügung stehen, kann obige Abfrage auch mittels der Conditional Tags-Funktion von WordPress, genauer gesagt mit Hilfe der Funktion is_page(), einer Seite zugewiesen werden. Damit ist es auch möglich, die Abfrage in der header.php oder footer.php des verwendeten Themes zu integrieren. In der ersten Zeile muss man „ID“ selbstverständlich durch die Page-ID der gewünschten Seite ersetzen.

if(is_page( ID )) {
if ( function_exists( 'wpcf7_enqueue_scripts' ) ) {
   wpcf7_enqueue_scripts();
}
if ( function_exists( 'wpcf7_enqueue_styles' ) ) {
   wpcf7_enqueue_styles();
}
}

2 Kommentare zu “Contact Form 7: Scripte nur laden, wenn benötigt”

  1. Felix Berlin sagt:

    Erst einmal danke für die Anleitung! Leider funktioniert das letzte Snippet (is_page (ID)) auf meiner Seite nicht. Kennst du noch eine andere Lösung?

    1. Jan Hoffmann sagt:

      Hallo Felix,

      vielen Dank für Dein Kommentar. Was hast Du denn statt „ID“ eingetragen? Du kannst Dir in der offiziellen Dokumentation von WordPress einmal anschauen, wie genau diese Funktion aussehen muss. Hier entlang: https://codex.wordpress.org/Function_Reference/is_page#Examples

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

» «