Hook e filtri per sviluppatori

5 min read

Estendi o personalizza TTSWP con gli hook standard di WordPress. Aggiungili al file functions.php del tuo tema o a un plugin personalizzato. Ogni hook è stabile e documentato.

Hook di filtro

Modifica il testo prima della sintesi

Usalo per ripulire i contenuti, inserire markup personalizzato o rimuovere sezioni prima che l'audio venga generato.

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

Salta l'audio per post specifici

Restituisci true per escludere un post dalla generazione automatica.

add_filter( 'mementor_tts_skip_auto_generation', function( $skip, $post_id ) {
    // Salta i post nella categoria "archivio"
    if ( has_category( 'archive', $post_id ) ) {
        return true;
    }
    return $skip;
}, 10, 2 );

Cambia la chiave di cache

Sovrascrivi il modo in cui TTSWP genera la chiave di cache audio. Utile quando vuoi una cache diversa per utente o per contesto personalizzato.

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

Personalizza la voce predefinita

Cambia la voce usata per post specifici.

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

Renderizza il markup della colonna

Usato dalle integrazioni multilingua per visualizzare contenuto personalizzato nella colonna dell'elenco post.

add_filter( 'mementor_tts_render_column', function( $rendered, $post_id, $audio_exists, $audio_url, $processing, $post_status ) {
    // Restituisci true dopo aver reso il tuo markup per saltare quello predefinito
    return $rendered;
}, 10, 6 );

Hook di azione

Prima che l'audio venga generato

add_action( 'mementor_tts_before_generate', function( $post_id, $text, $voice ) {
    // Registra, notifica o prepara qualcosa
}, 10, 3 );

Dopo che l'audio è stato generato

add_action( 'mementor_tts_audio_generated', function( $post_id, $audio_url, $characters ) {
    // Notifica, aggiorna un campo personalizzato, invia a una coda esterna
}, 10, 3 );

Dopo che l'audio è stato eliminato

add_action( 'mementor_tts_audio_deleted', function( $post_id ) {
    // Pulisci i dati correlati
} );

Alla connessione del sito

add_action( 'mementor_tts_site_connected', function( $site_token ) {
    // Notifica il tuo team, invia un'email di benvenuto, ecc.
} );

Costanti che puoi definire

Definiscile in wp-config.php:

Abilita il log di debug

define( 'MEMENTOR_TTS_DEBUG', true );

Quando impostata, i log dettagliati vengono scritti in wp-content/debug.log.

Sovrascrivi l'endpoint API

Per ambienti di staging o test:

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

Ricette di personalizzazione comuni

Aggiungi un selettore di voce per post alla barra laterale dell'editor a blocchi

Il plugin aggiunge già un pannello TTS all'editor. Puoi estenderlo:

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

Invia ogni generazione a 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( 'Generati %d caratteri per il post %s: %s', $characters, get_the_title( $post_id ), $audio_url ),
        ] ),
    ] );
}, 10, 3 );

Promessa di stabilita

Gli hook elencati in questa pagina sono API pubbliche stabili. Non li rimuoviamo ne rinominiamo senza almeno un avviso di versione principale nel changelog e un avviso di deprecazione per la versione principale precedente.

Pagine correlate