Warum ohne Plugin?
Kontaktformular-Plugins wie Contact Form 7 oder WPForms sind beliebt — aber manchmal willst du einfach ein schnelles Formular, ohne ein weiteres Plugin zu installieren. Weniger Plugins bedeuten weniger potenzielle Sicherheitslücken, weniger Update-Aufwand und bessere Performance.
Die HTML-Formular-Methode
Die einfachste Methode: Ein HTML-Formular, das per POST an ein PHP-Skript sendet. Das funktioniert direkt im Gutenberg-HTML-Block oder in einem benutzerdefinierten Template.
Schritt 1: Das Formular-HTML
Füge diesen Code in einen HTML-Block ein:
<form action="/kontakt/" method="POST">
<label for="name">Name</label>
<input type="text" id="name" name="name" required>
<label for="email">E-Mail</label>
<input type="email" id="email" name="email" required>
<label for="nachricht">Nachricht</label>
<textarea id="nachricht" name="nachricht" required></textarea>
<button type="submit">Absenden</button>
</form>
Schritt 2: PHP-Verarbeitung im Theme
Erstelle eine Funktion in deiner functions.php, die das Formular verarbeitet:
add_action("init", function() {
if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST["name"])) {
$name = sanitize_text_field($_POST["name"]);
$email = sanitize_email($_POST["email"]);
$nachricht = sanitize_textarea_field($_POST["nachricht"]);
$to = get_option("admin_email");
$subject = "Kontaktformular: $name";
$body = "Name: $namenE-Mail: $emailnn$nachricht";
$headers = ["From: $name ", "Reply-To: $email"];
wp_mail($to, $subject, $body, $headers);
}
});
Die wp_mail()-Methode
WordPress bringt mit wp_mail() eine eigene Mail-Funktion mit. Du brauchst kein externes Tool — alles läuft über den Server.
-
wp_mail() nutzt standardmäßig PHP
mail() - Besser: Ein SMTP-Plugin wie WP SMTP für zuverlässigen Versand
- Alternativ: SMTP direkt in der
wp-config.phpkonfigurieren
Spam-Schutz ohne Plugin
Ohne Plugin musst du Spam selbst bekämpfen:
- Füge ein verstecktes Honigtopf-Feld hinzu — Bots füllen es aus, Menschen nicht
- Nutze ein Nonce (WordPress-spezifisches Sicherheitstoken) im Formular
- Begrenze die Absenderate mit Session-basiertem Tracking
Honigtopf-Beispiel:
<input type="text" name="website_url" style="display:none" tabindex="-1" autocomplete="off">
In der PHP-Verarbeitung prüfst du: Wenn das Feld ausgefüllt ist, war es ein Bot — ignoriere die Nachricht.
Alternativen zum selbst gebauten Formular
- WPForms Lite: Wenn du doch ein Plugin willst — einfach und zuverlässig
- External Services: Google Forms oder Tally.so einbetten — kein Plugin nötig
- Mailto-Link: Die einfachste Lösung, aber keine gute UX
Fazit
Ein Kontaktformular ohne Plugin ist machbar und sinnvoll für einfache Anforderungen. Für komplexere Formulare (Dateiuploads, bedingte Felder, Mehrseiten-Formulare) empfehle ich trotzdem ein Plugin. Starte einfach und entscheide nach Bedarf.