표준 WordPress 훅으로 TTSWP를 확장하거나 커스터마이즈하세요. 테마의 functions.php 또는 커스텀 플러그인에 추가하면 됩니다. 모든 훅은 안정적이며 문서화되어 있습니다.
필터 훅
합성 전 텍스트 수정
오디오 생성 전에 콘텐츠를 정리하거나, 커스텀 마크업을 삽입하거나, 특정 섹션을 제거할 때 사용하세요.
add_filter( 'mementor_tts_pre_synthesize_text', function( $text, $post_id ) {
// 원하는 수정 사항 적용
$text = str_replace( 'WP', 'WordPress', $text );
return $text;
}, 10, 2 );
특정 포스트의 오디오 건너뛰기
true를 반환하면 해당 포스트의 자동 생성을 건너뜁니다.
add_filter( 'mementor_tts_skip_auto_generation', function( $skip, $post_id ) {
// "archive" 카테고리의 포스트 건너뛰기
if ( has_category( 'archive', $post_id ) ) {
return true;
}
return $skip;
}, 10, 2 );
캐시 키 변경
TTSWP가 오디오 캐시 키를 생성하는 방식을 재정의합니다. 사용자별 또는 커스텀 컨텍스트별로 다른 캐싱이 필요할 때 유용합니다.
add_filter( 'mementor_tts_audio_cache_key', function( $key, $text, $voice ) {
return $key . '_' . get_current_user_id();
}, 10, 3 );
기본 음성 커스터마이즈
특정 포스트에 사용할 음성을 변경합니다.
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 );
컬럼 마크업 렌더링
다국어 통합에서 포스트 목록의 커스텀 컬럼 콘텐츠를 렌더링할 때 사용합니다.
add_filter( 'mementor_tts_render_column', function( $rendered, $post_id, $audio_exists, $audio_url, $processing, $post_status ) {
// 기본 렌더링을 건너뛰려면 자체 마크업 렌더링 후 true 반환
return $rendered;
}, 10, 6 );
액션 훅
오디오 생성 전
add_action( 'mementor_tts_before_generate', function( $post_id, $text, $voice ) {
// 로그 기록, 알림 전송, 또는 사전 준비 작업
}, 10, 3 );
오디오 생성 후
add_action( 'mementor_tts_audio_generated', function( $post_id, $audio_url, $characters ) {
// 알림 전송, 커스텀 필드 업데이트, 외부 큐에 전달
}, 10, 3 );
오디오 삭제 후
add_action( 'mementor_tts_audio_deleted', function( $post_id ) {
// 관련 데이터 정리
} );
사이트 연결 시
add_action( 'mementor_tts_site_connected', function( $site_token ) {
// 팀 알림 전송, 환영 이메일 발송 등
} );
정의 가능한 상수
wp-config.php에서 정의하세요.
디버그 로깅 활성화
define( 'MEMENTOR_TTS_DEBUG', true );
설정하면 상세 로그가 wp-content/debug.log에 기록됩니다.
API 엔드포인트 재정의
스테이징 또는 테스트 환경용:
define( 'MEMENTOR_TTS_API_URL', 'https://staging.ttswp.com' );
자주 쓰이는 커스터마이즈 예제
블록 에디터 사이드바에 포스트별 음성 선택기 추가
플러그인은 이미 에디터에 TTS 패널을 추가합니다. 다음과 같이 확장할 수 있습니다.
add_filter( 'mementor_tts_editor_sidebar_fields', function( $fields ) {
$fields[] = [
'key' => 'speaking_speed',
'label' => '말하기 속도',
'type' => 'number',
];
return $fields;
} );
모든 생성 결과를 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( '포스트 %s의 %d자 오디오 생성 완료: %s', get_the_title( $post_id ), $characters, $audio_url ),
] ),
] );
}, 10, 3 );
안정성 보장
이 페이지에 나열된 훅은 안정적인 공개 API입니다. 최소 한 번의 메이저 버전 공지와 이전 메이저 버전에 대한 사용 중단 경고 없이는 제거하거나 이름을 변경하지 않습니다.