Hooks e filtros para desenvolvedores

5 min read

Estenda ou personalize o TTSWP com hooks padrão do WordPress. Adicione-os ao arquivo functions.php do seu tema ou a um plugin personalizado. Todos os hooks são estáveis e documentados.

Hooks de filtro

Modificar o texto antes da síntese

Use este hook para limpar o conteúdo, inserir marcações personalizadas ou remover seções antes de o áudio ser gerado.

add_filter( 'mementor_tts_pre_synthesize_text', function( $text, $post_id ) {
    // Suas modificações
    $text = str_replace( 'WP', 'WordPress', $text );
    return $text;
}, 10, 2 );

Ignorar áudio para posts específicos

Retorne true para ignorar um post na geração automática.

add_filter( 'mementor_tts_skip_auto_generation', function( $skip, $post_id ) {
    // Ignora posts na categoria "arquivo"
    if ( has_category( 'archive', $post_id ) ) {
        return true;
    }
    return $skip;
}, 10, 2 );

Alterar a chave de cache

Substitua como o TTSWP gera sua chave de cache de áudio. Útil quando você quer um cache diferente por usuário ou por contexto personalizado.

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

Personalizar a voz padrão

Altera qual voz é usada para posts específicos.

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

Renderizar marcação de coluna

Usado por integrações multilíngues para renderizar conteúdo de coluna personalizado na lista de posts.

add_filter( 'mementor_tts_render_column', function( $rendered, $post_id, $audio_exists, $audio_url, $processing, $post_status ) {
    // Retorne true após renderizar sua própria marcação para ignorar o padrão
    return $rendered;
}, 10, 6 );

Hooks de ação

Antes de o áudio ser gerado

add_action( 'mementor_tts_before_generate', function( $post_id, $text, $voice ) {
    // Registre, notifique ou prepare algo
}, 10, 3 );

Após o áudio ser gerado

add_action( 'mementor_tts_audio_generated', function( $post_id, $audio_url, $characters ) {
    // Notifique, atualize um campo personalizado, envie para uma fila externa
}, 10, 3 );

Após o áudio ser excluído

add_action( 'mementor_tts_audio_deleted', function( $post_id ) {
    // Limpe dados relacionados
} );

Na conexão do site

add_action( 'mementor_tts_site_connected', function( $site_token ) {
    // Notifique sua equipe, envie um e-mail de boas-vindas, etc.
} );

Constantes que você pode definir

Defina no wp-config.php:

Ativar log de depuração

define( 'MEMENTOR_TTS_DEBUG', true );

Quando definido, logs detalhados são gravados em wp-content/debug.log.

Substituir o endpoint da API

Para ambientes de homologação ou teste:

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

Receitas comuns de personalização

Adicionar um seletor de voz por post na barra lateral do editor de blocos

O plugin já adiciona um painel TTS ao editor. Você pode estendê-lo:

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

Enviar cada geração para o 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( 'Gerado %d caracteres para o post %s: %s', $characters, get_the_title( $post_id ), $audio_url ),
        ] ),
    ] );
}, 10, 3 );

Compromisso de estabilidade

Os hooks listados nesta página fazem parte da API pública estável. Não os removemos nem renomeamos sem ao menos um aviso de versão principal no changelog e um aviso de depreciação na versão principal anterior.

Páginas relacionadas