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.php konfigurieren

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.