Hooks und Filter für Entwickler

5 min read

TTSWP mit Standard-WordPress-Hooks erweitern oder anpassen. Füge diese in die functions.php deines Themes oder ein benutzerdefiniertes Plugin ein. Jeder Hook ist stabil und dokumentiert.

Filter-Hooks

Text vor der Synthese ändern

Damit kannst du Inhalte bereinigen, benutzerdefiniertes Markup einfügen oder Abschnitte entfernen, bevor Audio generiert wird.

add_filter( 'mementor_tts_pre_synthesize_text', function( $text, $post_id ) {
    // Deine Anpassungen
    $text = str_replace( 'WP', 'WordPress', $text );
    return $text;
}, 10, 2 );

Audio für bestimmte Beiträge überspringen

Gib true zurück, um einen Beitrag von der automatischen Generierung auszuschließen.

add_filter( 'mementor_tts_skip_auto_generation', function( $skip, $post_id ) {
    // Beiträge in der Kategorie "archive" überspringen
    if ( has_category( 'archive', $post_id ) ) {
        return true;
    }
    return $skip;
}, 10, 2 );

Cache-Schlüssel ändern

Überschreibe, wie TTSWP seinen Audio-Cache-Schlüssel generiert. Nützlich, wenn du unterschiedliches Caching pro Benutzer oder benutzerdefiniertem Kontext benötigst.

add_filter( 'mementor_tts_audio_cache_key', function( $key, $text, $voice ) {
    return $key . '_' . get_current_user_id();
}, 10, 3 );

Standard-Stimme anpassen

Lege fest, welche Stimme für bestimmte Beiträge verwendet wird.

add_filter( 'mementor_tts_voice_for_post', function( $voice_id, $post_id ) {
    if ( get_post_type( $post_id ) === 'podcast' ) {
        return 'my-podcast-voice-id';
    }
    return $voice_id;
}, 10, 2 );

Spalten-Markup rendern

Wird von mehrsprachigen Integrationen verwendet, um benutzerdefinierte Spalteninhalte in der Beitragsliste darzustellen.

add_filter( 'mementor_tts_render_column', function( $rendered, $post_id, $audio_exists, $audio_url, $processing, $post_status ) {
    // Nach dem Rendern des eigenen Markups true zurückgeben, um den Standard zu überspringen
    return $rendered;
}, 10, 6 );

Action-Hooks

Vor der Audio-Generierung

add_action( 'mementor_tts_before_generate', function( $post_id, $text, $voice ) {
    // Protokollieren, benachrichtigen oder etwas vorbereiten
}, 10, 3 );

Nach der Audio-Generierung

add_action( 'mementor_tts_audio_generated', function( $post_id, $audio_url, $characters ) {
    // Benachrichtigen, ein benutzerdefiniertes Feld aktualisieren, in eine externe Warteschlange schieben
}, 10, 3 );

Nach dem Löschen von Audio

add_action( 'mementor_tts_audio_deleted', function( $post_id ) {
    // Zugehörige Daten bereinigen
} );

Bei Website-Verbindung

add_action( 'mementor_tts_site_connected', function( $site_token ) {
    // Team benachrichtigen, Willkommens-E-Mail senden usw.
} );

Definierbare Konstanten

In wp-config.php definieren:

Debug-Protokollierung aktivieren

define( 'MEMENTOR_TTS_DEBUG', true );

Wenn gesetzt, werden ausführliche Logs in wp-content/debug.log geschrieben.

API-Endpunkt überschreiben

Für Staging- oder Testumgebungen:

define( 'MEMENTOR_TTS_API_URL', 'https://staging.ttswp.com' );

Häufige Anpassungsrezepte

Einen beitrags-spezifischen Stimmenauswähler zur Block-Editor-Seitenleiste hinzufügen

Das Plugin fügt dem Editor bereits ein TTS-Panel hinzu. Du kannst es erweitern:

add_filter( 'mementor_tts_editor_sidebar_fields', function( $fields ) {
    $fields[] = [
        'key' => 'speaking_speed',
        'label' => 'Sprechgeschwindigkeit',
        'type' => 'number',
    ];
    return $fields;
} );

Jede Generierung an Slack senden

add_action( 'mementor_tts_audio_generated', function( $post_id, $audio_url, $characters ) {
    wp_remote_post( 'https://hooks.slack.com/your-webhook', [
        'body' => json_encode( [
            'text' => sprintf( '%d Zeichen für Beitrag %s generiert: %s', $characters, get_the_title( $post_id ), $audio_url ),
        ] ),
    ] );
}, 10, 3 );

Stabilitätsversprechen

Die auf dieser Seite aufgeführten Hooks sind eine stabile öffentliche API. Wir entfernen oder benennen sie nicht ohne mindestens eine Major-Version-Ankündigung im Changelog und eine Deprecation-Warnung für die vorherige Major-Version um.

Verwandte Seiten