Plugin Contact Form 7: Mitgeliefertes CSS und Javascript multisite-freundlich im Theme deaktivieren

The times they are a-changin’.

This post seems to be older than 5 years—a long time on the internet. It might be outdated.

Contact Form 7 dürfte eins der beliebtesten WordPress-Plugins für ein einfaches Kontaktformular sein. Es kommt mit einem anwenderfreundlichen Konfigurationsmenü, inklusive deutscher Übersetzung, und kann out-of-the-box verwendet werden. Styles und Scripts sind von vorne herein aktiviert und werden automatisch mit geladen.

Soviel Dienstbeflissenheit ist toll, kann aber natürlich auch stören, wenn man etwa eigenes CSS anwenden und nicht jede Zeile des mitgelieferten Stylesheets extra überschreiben möchte.

1. Konstante in wp-config.php

Der Entwickler des Plugins stellt für diesen Fall zwei Konstanten bereit, die in der wp-config.php im Root-Verzeichnis der WordPress-Installation abgelegt werden mit deren Hilfe das Laden von CSS und Javascript für Contact Form 7 unterbunden werden kann. Auf den Entwicklerseiten wird beschrieben, wie das geht.

Contact Form 7 – Konstanten
Contact Form 7 – Konstanten. Quelle: http://contactform7.com/controlling-behavior-by-setting-constants/

2. Theme-basierter Ansatz für Multisite

Schön und gut – solange man Zugriff auf das Root-Verzeichnis hat und nur ein einzelnes Blog mit seiner Installation betreibt. Aber was tun in Multisite? Man möchte ja ungern für jedes Blog einzeln die wp-config.php mit Konstanten voll spammen. Für mich hat der folgende Ansatz gut funktioniert:

Fast immer macht es Sinn, (Child-)Themes mit einer eigenen init-Funktion auszustatten, um Scripte und Stylesheets sauber in die Hooks wp_head und wp_footer laden zu können. In solch einer Funktion können auch die entsprechenden action-Aufrufe des Plugins unterbunden werden.

[php]function meine_theme_init() {

// ! – Remove Contact Form 7 stylesheet
if( function_exists( ‚wpcf7_enqueue_styles‘ ) )
remove_action( ‚wp_enqueue_scripts‘, ‚wpcf7_enqueue_styles‘ );

// ! – Remove Contact Form 7 javascript
if( function_exists( ‚wpcf7_enqueue_scripts‘ ) )
remove_action( ‚wp_enqueue_scripts‘, ‚wpcf7_enqueue_scripts‘ );
}
add_action( ‚init‘, ‚meine_theme_init‘ );[/php]

Wichtig: Erst einmal schauen, ob das eigene Theme bereits eine Funktion in den init-Hook lädt! Wenn dem so ist, können die beiden Konditionalen einfach in die vorhandene Funktion mit aufgenommen werden.
Sofern das Theme über eine Setup-Funktion verfügt, die in den Hook after_setup_theme geladen wird, sollte der letzte Aufruf add_action( 'init', 'meine_theme_init' ); dort hinein.

Feedback?

Benutzt du Contact Form 7 und hast gute Erfahrungen mit einem anderen Ansatz gemacht? Feedback ist, wie immer, hoch willkommen!

3 Antworten zu “Plugin Contact Form 7: Mitgeliefertes CSS und Javascript multisite-freundlich im Theme deaktivieren

    • In der functions.php. Bitte erstmal nach add_action( 'init' suchen. Wenn’s da schon was gibt, kann der Inhalt von meine_theme_init() evtl. einfach der vorhandenen Funktion hinzugefügt werden.

      • Alles klar! Vielen Dank!

        Es war noch nichts vorhanden. Habe dann das komplette Codefragement in die functions.php geladen.

        Läuft alles.

Kommentare geschlossen.