開発者向けフックとフィルター

5 min read

標準的な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です。変更ログで少なくとも1メジャーバージョン前の告知と、直前のメジャーバージョンでの非推奨警告なしに削除または名称変更は行いません。

関連ページ