Hooks et filtres pour les développeurs

5 min read

É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.

Pages associées

All articles in this section