Hooks och filter för utvecklare

5 min read

Utöka eller anpassa TTSWP med vanliga WordPress-hooks. Lägg till dessa i ditt temas functions.php eller i ett eget plugin. Alla hooks är stabila och dokumenterade.

Filter-hooks

Ändra texten innan syntes

Använd detta för att rensa innehåll, injicera anpassad markup eller ta bort avsnitt innan ljudet genereras.

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

Hoppa över ljud för specifika inlägg

Returnera true för att hoppa över ett inlägg vid automatisk generering.

add_filter( 'mementor_tts_skip_auto_generation', function( $skip, $post_id ) {
    // Hoppa över inlägg i kategorin "arkiv"
    if ( has_category( 'archive', $post_id ) ) {
        return true;
    }
    return $skip;
}, 10, 2 );

Ändra cache-nyckeln

Åsidosätt hur TTSWP genererar sin cache-nyckel för ljud. Praktiskt när du vill ha olika caching per användare eller per anpassat sammanhang.

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

Anpassa standardrösten

Ändra vilken röst som används för specifika inlägg.

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

Rendera kolumn-markup

Används av flerspråkiga integrationer för att rendera anpassat kolumninnehåll i inläggslistan.

add_filter( 'mementor_tts_render_column', function( $rendered, $post_id, $audio_exists, $audio_url, $processing, $post_status ) {
    // Returnera true efter att du renderat din egen markup för att hoppa över standarden
    return $rendered;
}, 10, 6 );

Action-hooks

Innan ljud genereras

add_action( 'mementor_tts_before_generate', function( $post_id, $text, $voice ) {
    // Logga, meddela eller förbered något
}, 10, 3 );

Efter att ljud har genererats

add_action( 'mementor_tts_audio_generated', function( $post_id, $audio_url, $characters ) {
    // Meddela, uppdatera ett anpassat fält, skicka till en extern kö
}, 10, 3 );

Efter att ljud har raderats

add_action( 'mementor_tts_audio_deleted', function( $post_id ) {
    // Rensa relaterad data
} );

Vid webbplatsanslutning

add_action( 'mementor_tts_site_connected', function( $site_token ) {
    // Meddela ditt team, skicka ett välkomstmejl osv.
} );

Konstanter du kan definiera

Definiera i wp-config.php:

Aktivera felsökningsloggning

define( 'MEMENTOR_TTS_DEBUG', true );

När detta är satt skrivs detaljerade loggar till wp-content/debug.log.

Åsidosätt API-slutpunkt

För staging- eller testmiljöer:

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

Vanliga anpassningsrecept

Lägg till en röstväljare per inlägg i blockredigerarens sidofält

Pluginet lägger redan till en TTS-panel i redigeraren. Du kan bygga ut den:

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

Skicka varje generering till 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( 'Genererade %d tecken för inlägg %s: %s', $characters, get_the_title( $post_id ), $audio_url ),
        ] ),
    ] );
}, 10, 3 );

Stabilitetslöfte

Hooks som listas på den här sidan är ett stabilt publikt API. Vi tar inte bort eller byter namn på dem utan att minst en stor version har annonserats i ändringsloggen och en deprecation-varning har skickats för den föregående stora versionen.

Relaterade sidor