Étendez ou personnalisez TTSWP avec les hooks WordPress standards. Ajoutez-les dans le fichier functions.php de votre thème ou dans un plugin personnalisé. Chaque hook est stable et documenté.
Hooks de filtre
Modifier le texte avant la synthèse
Utilisez ce hook pour nettoyer le contenu, injecter du balisage personnalisé ou supprimer des sections avant la génération de l'audio.
add_filter( 'mementor_tts_pre_synthesize_text', function( $text, $post_id ) {
// Vos modifications
$text = str_replace( 'WP', 'WordPress', $text );
return $text;
}, 10, 2 );
Ignorer l'audio pour des publications spécifiques
Retournez true pour exclure une publication de la génération automatique.
add_filter( 'mementor_tts_skip_auto_generation', function( $skip, $post_id ) {
// Ignorer les publications dans la catégorie "archive"
if ( has_category( 'archive', $post_id ) ) {
return true;
}
return $skip;
}, 10, 2 );
Modifier la clé de cache
Surchargez la façon dont TTSWP génère sa clé de cache audio. Utile lorsque vous souhaitez un cache différent par utilisateur ou par contexte personnalisé.
add_filter( 'mementor_tts_audio_cache_key', function( $key, $text, $voice ) {
return $key . '_' . get_current_user_id();
}, 10, 3 );
Personnaliser la voix par défaut
Modifiez la voix utilisée pour des publications spécifiques.
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 );
Afficher le contenu d'une colonne
Utilisé par les intégrations multilingues pour afficher un contenu de colonne personnalisé dans la liste des publications.
add_filter( 'mementor_tts_render_column', function( $rendered, $post_id, $audio_exists, $audio_url, $processing, $post_status ) {
// Retournez true après avoir rendu votre propre balisage pour ignorer le comportement par défaut
return $rendered;
}, 10, 6 );
Hooks d'action
Avant la génération de l'audio
add_action( 'mementor_tts_before_generate', function( $post_id, $text, $voice ) {
// Journalisez, notifiez ou préparez quelque chose
}, 10, 3 );
Après la génération de l'audio
add_action( 'mementor_tts_audio_generated', function( $post_id, $audio_url, $characters ) {
// Notifiez, mettez à jour un champ personnalisé, envoyez vers une file externe
}, 10, 3 );
Après la suppression de l'audio
add_action( 'mementor_tts_audio_deleted', function( $post_id ) {
// Nettoyez les données associées
} );
À la connexion du site
add_action( 'mementor_tts_site_connected', function( $site_token ) {
// Notifiez votre équipe, envoyez un e-mail de bienvenue, etc.
} );
Constantes que vous pouvez définir
Définissez-les dans wp-config.php :
Activer la journalisation de débogage
define( 'MEMENTOR_TTS_DEBUG', true );
Lorsqu'elle est définie, les journaux détaillés sont écrits dans wp-content/debug.log.
Surcharger le point de terminaison API
Pour les environnements de staging ou de test :
define( 'MEMENTOR_TTS_API_URL', 'https://staging.ttswp.com' );
Recettes de personnalisation courantes
Ajouter un sélecteur de voix par publication dans la barre latérale de l'éditeur de blocs
Le plugin ajoute déjà un panneau TTS à l'éditeur. Vous pouvez l'étendre :
add_filter( 'mementor_tts_editor_sidebar_fields', function( $fields ) {
$fields[] = [
'key' => 'speaking_speed',
'label' => 'Vitesse de lecture',
'type' => 'number',
];
return $fields;
} );
Envoyer chaque génération vers 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( 'Généré %d caractères pour la publication %s : %s', $characters, get_the_title( $post_id ), $audio_url ),
] ),
] );
}, 10, 3 );
Engagement de stabilité
Les hooks listés sur cette page font partie de l'API publique stable. Nous ne les supprimons ni ne les renommons sans au moins un avis de version majeure dans le journal des modifications et un avertissement de dépréciation pour la version majeure précédente.