Hooki i filtry dla deweloperów

5 min read

Rozszerz lub dostosuj TTSWP za pomocą standardowych hooków WordPress. Dodaj je do pliku functions.php swojego motywu lub wtyczki niestandardowej. Każdy hook jest stabilny i udokumentowany.

Filtry

Modyfikacja tekstu przed syntezą

Użyj tego filtra, aby wyczyścić treść, wstrzyknąć niestandardowe znaczniki lub usunąć sekcje przed wygenerowaniem audio.

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

Pomijanie audio dla konkretnych postów

Zwróć true, aby pominąć post podczas automatycznego generowania.

add_filter( 'mementor_tts_skip_auto_generation', function( $skip, $post_id ) {
    // Pomiń posty z kategorii "archiwum"
    if ( has_category( 'archive', $post_id ) ) {
        return true;
    }
    return $skip;
}, 10, 2 );

Zmiana klucza pamięci podręcznej

Nadpisz sposób, w jaki TTSWP generuje klucz pamięci podręcznej audio. Przydatne, gdy chcesz stosować różne buforowanie dla poszczególnych użytkowników lub niestandardowych kontekstów.

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

Dostosowanie domyślnego głosu

Zmień głos używany dla konkretnych postów.

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 );

Renderowanie zawartości kolumny

Używany przez integracje wielojęzyczne do renderowania niestandardowej zawartości kolumny na liście postów.

add_filter( 'mementor_tts_render_column', function( $rendered, $post_id, $audio_exists, $audio_url, $processing, $post_status ) {
    // Zwróć true po wyrenderowaniu własnego znacznika, aby pominąć domyślny
    return $rendered;
}, 10, 6 );

Akcje

Przed wygenerowaniem audio

add_action( 'mementor_tts_before_generate', function( $post_id, $text, $voice ) {
    // Loguj, powiadamiaj lub przygotuj coś z wyprzedzeniem
}, 10, 3 );

Po wygenerowaniu audio

add_action( 'mementor_tts_audio_generated', function( $post_id, $audio_url, $characters ) {
    // Powiadamiaj, aktualizuj pole niestandardowe, wysyłaj do zewnętrznej kolejki
}, 10, 3 );

Po usunięciu audio

add_action( 'mementor_tts_audio_deleted', function( $post_id ) {
    // Wyczyść powiązane dane
} );

Przy połączeniu witryny

add_action( 'mementor_tts_site_connected', function( $site_token ) {
    // Powiadom swój zespół, wyślij e-mail powitalny itp.
} );

Stałe, które możesz zdefiniować

Zdefiniuj w pliku wp-config.php:

Włączanie logowania diagnostycznego

define( 'MEMENTOR_TTS_DEBUG', true );

Po ustawieniu szczegółowe logi są zapisywane do wp-content/debug.log.

Nadpisanie punktu końcowego API

Dla środowisk testowych lub stagingowych:

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

Typowe przepisy na dostosowania

Dodanie selektora głosu dla poszczególnych postów do paska bocznego edytora blokowego

Wtyczka dodaje już panel TTS do edytora. Możesz go rozszerzyć:

add_filter( 'mementor_tts_editor_sidebar_fields', function( $fields ) {
    $fields[] = [
        'key' => 'speaking_speed',
        'label' => 'Prędkość mówienia',
        'type' => 'number',
    ];
    return $fields;
} );

Wysyłanie każdego wygenerowanego audio na Slack

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( 'Wygenerowano %d znaków dla posta %s: %s', $characters, get_the_title( $post_id ), $audio_url ),
        ] ),
    ] );
}, 10, 3 );

Gwarancja stabilności

Hooki wymienione na tej stronie stanowią stabilne publiczne API. Nie usuwamy ich ani nie zmieniamy ich nazw bez co najmniej jednego powiadomienia w changelogu przed nową wersją główną i ostrzeżenia o deprecacji dla poprzedniej wersji głównej.

Powiązane strony