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.