Manuel Killert
Guide · WordPress · OpenAI-API

OpenAI-API in WordPress einbinden — sicher und mit eigenem Plugin.

Texte zusammenfassen, Produktbeschreibungen vorschlagen, Übersetzungen anstoßen oder Besucherfragen beantworten — mit der OpenAI-API bekommt WordPress solche Fähigkeiten. Es gibt Plugins dafür, aber oft ist ein kleines eigenes Plugin die sauberere Lösung. Hier steht, wie das sicher geht.

Referenzen ansehen →Projekt anfragen
Kurz gesagt

Die OpenAI-API wird serverseitig in PHP aufgerufen, mit wp_remote_post. Der API-Schlüssel steht in der wp-config.php, nicht in der Datenbank und nie im JavaScript. Für Funktionen im Frontend gibt es einen eigenen REST-Endpunkt mit Nonce, Längenbegrenzung und Ratenbegrenzung. Im Backend nur für berechtigte Rollen. Dazu ein Ausgabenlimit im OpenAI-Konto.

Wofür KI in WordPress.

  • Redaktion: Zusammenfassungen, Meta-Beschreibungen, Titelvorschläge, Alternativtexte für Bilder.
  • WooCommerce: Produktbeschreibungen aus Stichpunkten, Übersetzung von Produktdaten (WooCommerce-Support).
  • Frontend: Assistent für Besucherfragen, intelligente Suche, Formular-Vorsortierung (ChatGPT in die Website).
  • Automatisierung: Eingehende Formularanfragen einordnen und an die richtige Person weiterleiten.

Fertiges Plugin oder eigenes?

Fertiges KI-PluginEigenes Plugin
StartSofortEinige Stunden bis Tage
FunktionenViele, oft mehr als nötigGenau das, was gebraucht wird
PerformanceTeils schwer, viele SkripteSchlank
DatenschutzHersteller prüfen, oft eigener Server dazwischenDirekt zum gewählten Anbieter
KostenLizenz plus NutzungEntwicklung plus Nutzung
WartungAbhängig vom HerstellerIn eigener Hand

Für einen schnellen Test ist ein fertiges Plugin in Ordnung. Für eine Funktion, die dauerhaft im Alltag läuft, lohnt sich meist ein kleines eigenes Plugin — mehr zu dieser Abwägung unter Eigenes oder fertiges Plugin.

Schritt 1: API-Schlüssel sicher ablegen.

wp-config.php
// Oberhalb von /* That's all, stop editing! */
define( 'MK_OPENAI_KEY', 'sk-...' );   // Schlüssel aus dem OpenAI-Konto, nie ins Git-Repository

Die wp-config.php liegt außerhalb der Datenbank und wird bei einem Datenbank-Export nicht mitgenommen. Noch besser: Umgebungsvariable des Servers, wenn der Hoster das anbietet.

Schritt 2: der Aufruf in PHP.

Funktion für den API-Aufruf (eigenes Plugin)
<?php
/**
 * Plugin Name: MK KI-Anbindung
 */
function mk_ki_antwort( string $anweisung, string $text ): string|WP_Error {
    $antwort = wp_remote_post( 'https://api.openai.com/v1/responses', [
        'timeout' => 30,
        'headers' => [
            'Authorization' => 'Bearer ' . MK_OPENAI_KEY,
            'Content-Type'  => 'application/json',
        ],
        'body' => wp_json_encode( [
            'model'             => 'gpt-4.1-mini',
            'instructions'      => $anweisung,
            'input'             => mb_substr( $text, 0, 8000 ),
            'max_output_tokens' => 500,
        ] ),
    ] );
    if ( is_wp_error( $antwort ) ) return $antwort;
    $daten = json_decode( wp_remote_retrieve_body( $antwort ), true );
    if ( wp_remote_retrieve_response_code( $antwort ) !== 200 ) {
        return new WP_Error( 'ki_fehler', $daten['error']['message'] ?? 'Unbekannter Fehler' );
    }
    // Text aus der Antwort zusammensetzen
    $out = '';
    foreach ( $daten['output'] ?? [] as $teil ) {
        foreach ( $teil['content'] ?? [] as $c ) {
            if ( ( $c['type'] ?? '' ) === 'output_text' ) $out .= $c['text'];
        }
    }
    return trim( $out );
}

Modell und Endpunkt nach aktueller Dokumentation des Anbieters wählen. Der Aufbau ist bei anderen Anbietern wie Anthropic ähnlich, nur Adresse, Kopfzeilen und Antwortformat unterscheiden sich.

Schritt 3: REST-Endpunkt fürs Frontend.

Soll die Funktion für Besucher erreichbar sein, braucht es einen Endpunkt, den das JavaScript im Browser aufruft. Dieser Endpunkt ist öffentlich — und damit ein Ziel für Missbrauch. Deshalb: Eingaben begrenzen, Anfragen pro Besucher zählen und bei Überschreitung ablehnen.

Öffentlicher Endpunkt mit Ratenbegrenzung
add_action( 'rest_api_init', function () {
    register_rest_route( 'mk-ki/v1', '/frage', [
        'methods'             => 'POST',
        'permission_callback' => '__return_true',   // öffentlich — deshalb unten begrenzen
        'callback'            => function ( WP_REST_Request $req ) {
            $ip    = md5( $_SERVER['REMOTE_ADDR'] ?? '' );
            $key   = 'mk_ki_' . $ip;
            $anzahl = (int) get_transient( $key );
            if ( $anzahl >= 20 ) {
                return new WP_Error( 'zu_viele', 'Bitte später erneut versuchen.', [ 'status' => 429 ] );
            }
            set_transient( $key, $anzahl + 1, HOUR_IN_SECONDS );

            $frage = sanitize_textarea_field( (string) $req->get_param( 'frage' ) );
            if ( mb_strlen( $frage ) < 3 || mb_strlen( $frage ) > 800 ) {
                return new WP_Error( 'ungueltig', 'Frage zu kurz oder zu lang.', [ 'status' => 400 ] );
            }
            $antwort = mk_ki_antwort( 'Du beantwortest Fragen zu den Leistungen von Beispiel GmbH, kurz und auf Deutsch.', $frage );
            return is_wp_error( $antwort ) ? $antwort : [ 'antwort' => $antwort ];
        },
    ] );
} );

Die IP-Adresse wird nur gehasht und für eine Stunde als Zähler gespeichert. Für Frontend-Formulare zusätzlich eine Nonce mitschicken und prüfen.

KI im Backend.

Für Redaktionsfunktionen — etwa ein Knopf „Zusammenfassung vorschlagen“ im Editor — gilt: Nur Nutzer mit passender Berechtigung dürfen die Funktion auslösen. Der Endpunkt prüft deshalb current_user_can( 'edit_posts' ) statt öffentlich erreichbar zu sein. Vorschläge werden nie automatisch veröffentlicht, sondern als Entwurf angezeigt, den die Redaktion übernimmt oder verwirft. Für den Block-Editor lässt sich die Funktion als eigene Seitenleiste umsetzen (eigene Blöcke zeigt das Prinzip an einem anderen Beispiel).

Sicherheits-Checkliste.

  • Schlüssel in der wp-config.php oder als Umgebungsvariable, nie im Code-Repository, nie im Browser.
  • Öffentliche Endpunkte mit Längenbegrenzung, Ratenbegrenzung und Bot-Schutz.
  • Backend-Endpunkte nur mit Berechtigungsprüfung.
  • Antworten der KI vor der Ausgabe maskieren (esc_html), nie ungeprüft als HTML ausgeben.
  • Keine personenbezogenen Daten mitschicken, die nicht nötig sind.
  • Fehler protokollieren, aber keine Schlüssel oder vollständigen Anfragen in Logs schreiben.
  • Ausgabenlimit im Konto des Anbieters setzen.

Allgemeine Absicherung: WordPress absichern.

Kosten im Griff.

Die Kosten entstehen pro verarbeiteter Textmenge. Günstige kleine Modelle reichen für Zusammenfassungen, Vorschläge und einfache Fragen völlig aus. Große Modelle lohnen sich nur, wo die Qualität spürbar besser sein muss. Bei wiederkehrenden Anfragen hilft ein Zwischenspeicher: Dieselbe Frage muss nicht zweimal bezahlt werden. Mit Monatslimit im Anbieterkonto und der Ratenbegrenzung im Endpunkt sind böse Überraschungen ausgeschlossen. Mehr: Kosten einer KI-Integration.

Wie ich helfen kann.

Ich entwickle schlanke WordPress-Plugins mit KI-Funktionen — sicher, datenschutzfreundlich und ohne unnötige Abhängigkeiten. Den Überblick über alle Themen gibt die Seite KI-Integration für Unternehmen, Preisrahmen stehen unter Kosten einer KI-Integration. Für Unternehmen im Raum Osnabrück: KI-Beratung Osnabrück.

Wer dahinter steht.

Ich bin Manuel Killert, Web- und KI-Entwickler aus Quakenbrück. Ich verbinde Sprachmodelle wie die von OpenAI und Anthropic mit Websites, WordPress, Shops und bestehender Software — über Schnittstellen, eigene Plugins und Automatisierungen mit Werkzeugen wie n8n. Für Unternehmen im Raum Osnabrück bin ich auch vor Ort erreichbar, alle anderen Projekte laufen remote. Ich sage dir ehrlich, wenn eine Aufgabe ohne KI besser gelöst ist.

Häufige Fragen

FAQ — OpenAI-API in WordPress einbinden.

Wie binde ich die OpenAI-API in WordPress ein?

Serverseitig in PHP mit wp_remote_post aus einem eigenen Plugin. Der API-Schlüssel steht in der wp-config.php. Für Funktionen im Frontend kommt ein eigener REST-Endpunkt mit Längen- und Ratenbegrenzung dazu.

Wo speichere ich den OpenAI-API-Schlüssel in WordPress?

In der wp-config.php als Konstante oder als Umgebungsvariable des Servers. Nicht in der Datenbank, nicht im Code-Repository und niemals im JavaScript, das an den Browser geht.

Brauche ich ein Plugin für ChatGPT in WordPress?

Für einen schnellen Test reicht ein fertiges Plugin. Für dauerhafte Funktionen ist ein kleines eigenes Plugin oft schlanker, datenschutzfreundlicher und unabhängiger vom Hersteller.

Wie schütze ich den KI-Endpunkt vor Missbrauch?

Mit Längenbegrenzung der Eingaben, einer Ratenbegrenzung pro Besucher, Bot-Schutz, Nonce bei Formularen und einem Ausgabenlimit im Anbieterkonto. Backend-Funktionen prüfen zusätzlich die Berechtigung.

Was kostet die Nutzung der OpenAI-API in WordPress?

Abgerechnet wird nach Textmenge. Für Zusammenfassungen, Vorschläge und einfache Fragen reichen günstige Modelle, die Kosten bleiben bei normaler Nutzung gering. Ein Zwischenspeicher für wiederkehrende Anfragen senkt sie weiter.

Funktioniert das auch mit anderen KI-Anbietern?

Ja. Der Aufbau ist bei Anthropic, Google oder europäischen Anbietern ähnlich. Adresse, Kopfzeilen und Antwortformat unterscheiden sich, das Prinzip mit serverseitigem Aufruf bleibt gleich.

Manuel Killert (rechts im Bild) mit einem FreundDas bin ich – rechts im Bild
Kontakt

Erzähl mir, was die KI erledigen soll.

Beschreib kurz die Aufgabe oder den Ablauf, der dich Zeit kostet — du bekommst eine ehrliche Einschätzung, ob und wie KI hilft und was es kostet.

Antwort meist innerhalb von 24 Stunden · hallo@manuelkillert.de