Hooks og filtre for udviklere

5 min read

Udvid eller tilpas TTSWP med standard WordPress-hooks. Tilføj dem i dit temas functions.php eller et tilpasset plugin. Alle hooks er stabile og dokumenterede.

Filter-hooks

Modificer teksten inden syntese

Brug dette til at rydde op i indhold, indsætte tilpasset markup eller fjerne sektioner, inden lyden genereres.

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

Spring lyd over for specifikke indlæg

Returnér true for at springe et indlæg over ved automatisk generering.

add_filter( 'mementor_tts_skip_auto_generation', function( $skip, $post_id ) {
    // Spring indlæg i kategorien "archive" over
    if ( has_category( 'archive', $post_id ) ) {
        return true;
    }
    return $skip;
}, 10, 2 );

Skift cache-nøglen

Tilsidesæt hvordan TTSWP genererer sin lyd-cache-nøgle. Nyttigt når du vil have forskellig caching pr. bruger eller pr. tilpasset kontekst.

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

Tilpas standardstemmen

Skift hvilken stemme der bruges til specifikke indlæg.

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

Render kolonne-markup

Bruges af flersprogsintegrationer til at vise tilpasset kolonneindhold på indlægslisten.

add_filter( 'mementor_tts_render_column', function( $rendered, $post_id, $audio_exists, $audio_url, $processing, $post_status ) {
    // Returnér true efter du har renderet din egen markup for at springe standard over
    return $rendered;
}, 10, 6 );

Action-hooks

Inden lyd genereres

add_action( 'mementor_tts_before_generate', function( $post_id, $text, $voice ) {
    // Log, notificer eller forbered noget
}, 10, 3 );

Efter lyd er genereret

add_action( 'mementor_tts_audio_generated', function( $post_id, $audio_url, $characters ) {
    // Notificer, opdater et tilpasset felt, eller send til en ekstern kø
}, 10, 3 );

Efter lyd er slettet

add_action( 'mementor_tts_audio_deleted', function( $post_id ) {
    // Ryd op i relaterede data
} );

Ved webstedstilslutning

add_action( 'mementor_tts_site_connected', function( $site_token ) {
    // Notificer dit team, send en velkomstmail osv.
} );

Konstanter du kan definere

Definér i wp-config.php:

Aktivér debug-logning

define( 'MEMENTOR_TTS_DEBUG', true );

Når den er sat, skrives detaljerede logs til wp-content/debug.log.

Tilsidesæt API-endpoint

Til staging- eller testmiljøer:

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

Almindelige tilpasningsopskrifter

Tilføj en stemmevaelger pr. indlæg til blokeditorens sidepanel

Pluginnet tilføjer allerede et TTS-panel til editoren. Du kan udvide det:

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

Send hver generering til 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( 'Genererede %d tegn for indlæg %s: %s', $characters, get_the_title( $post_id ), $audio_url ),
        ] ),
    ] );
}, 10, 3 );

Stabilitetslöfte

Hooks på denne side er stabile, offentlige API. Vi fjerner eller omdøber dem ikke uden mindst én større versionsmeddelelse i ændringsloggen og en forældelseadvarsel for den foregående hovedversion.

Relaterede sider