Hooks y filtros para desarrolladores

5 min read

Extiende o personaliza TTSWP con hooks estándar de WordPress. Agrega estos a tu archivo functions.php del tema o a un plugin personalizado. Cada hook es estable y está documentado.

Hooks de filtro

Modificar el texto antes de la síntesis

Úsalo para limpiar el contenido, inyectar marcado personalizado o eliminar secciones antes de generar el audio.

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

Omitir audio para entradas específicas

Devuelve true para omitir una entrada de la generación automática.

add_filter( 'mementor_tts_skip_auto_generation', function( $skip, $post_id ) {
    // Omitir entradas en la categoría "archivo"
    if ( has_category( 'archive', $post_id ) ) {
        return true;
    }
    return $skip;
}, 10, 2 );

Cambiar la clave de caché

Reemplaza cómo TTSWP genera su clave de caché de audio. Útil cuando quieres un caché diferente por usuario o por contexto personalizado.

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

Personalizar la voz predeterminada

Cambia qué voz se usa para entradas específicas.

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 el marcado de columna

Usado por integraciones multilingüe para renderizar contenido de columna personalizado en la lista de entradas.

add_filter( 'mementor_tts_render_column', function( $rendered, $post_id, $audio_exists, $audio_url, $processing, $post_status ) {
    // Devuelve true después de renderizar tu propio marcado para omitir el predeterminado
    return $rendered;
}, 10, 6 );

Hooks de acción

Antes de generar el audio

add_action( 'mementor_tts_before_generate', function( $post_id, $text, $voice ) {
    // Registrar, notificar o preparar algo
}, 10, 3 );

Después de generar el audio

add_action( 'mementor_tts_audio_generated', function( $post_id, $audio_url, $characters ) {
    // Notificar, actualizar un campo personalizado, enviar a una cola externa
}, 10, 3 );

Después de eliminar el audio

add_action( 'mementor_tts_audio_deleted', function( $post_id ) {
    // Limpiar datos relacionados
} );

Al conectar el sitio

add_action( 'mementor_tts_site_connected', function( $site_token ) {
    // Notifica a tu equipo, envía un correo de bienvenida, etc.
} );

Constantes que puedes definir

Defínelas en wp-config.php:

Activar el registro de depuración

define( 'MEMENTOR_TTS_DEBUG', true );

Cuando está activo, los registros detallados se escriben en wp-content/debug.log.

Reemplazar el endpoint de la API

Para entornos de prueba o staging:

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

Recetas comunes de personalización

Agregar un selector de voz por entrada al panel lateral del editor de bloques

El plugin ya agrega un panel de TTS al editor. Puedes extenderlo:

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

Enviar cada generación 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( 'Se generaron %d caracteres para la entrada %s: %s', $characters, get_the_title( $post_id ), $audio_url ),
        ] ),
    ] );
}, 10, 3 );

Compromiso de estabilidad

Los hooks listados en esta página son una API pública estable. No los eliminamos ni renombramos sin al menos un aviso de versión principal en el registro de cambios y una advertencia de deprecación para la versión principal anterior.

Páginas relacionadas