ワードプレスのget_oembed_response_dataフィルタの使用方法・解説

概要

get_oembed_response_dataフィルタは、oEmbedレスポンス情報を取得する際に使用されます。このフィルタは、oEmbedプロバイダから取得したレスポンスを加工したり、カスタマイズしたりするために利用されます。

このフィルタは、以下のような機能を実装する際によく使われます:

  1. oEmbedレスポンスの拡張情報を追加する
  2. 特定の条件に基づいてレスポンスをフィルタリングする
  3. レスポンスの形式を変更する
  4. カスタムスタイルまたはスクリプトをレスポンスに追加する
  5. 特定のメタデータを除外する
  6. サポートされていないoEmbedタイプのエラーメッセージを表示する
  7. 既存のoEmbedプロバイダからのレスポンスを修正する
  8. 外部のAPIから取得したデータと統合する

構文

add_filter('get_oembed_response_data', 'your_function_name', 10, 3);

パラメータ

  • $response: 既存のoEmbedレスポンスデータの配列。
  • $url: レスポンスが生成されたoEmbed URL。
  • $provider: レスポンスが取得されたプロバイダの情報。

戻り値

改変されたoEmbedレスポンスデータの配列。

関連する関数

get_oembed_response_data

ワードプレスのバージョン

このフィルタは、WordPress 3.4以降で使用可能です。

コアファイルのパス

wp-includes/class-oembed.php

この関数のアクションでの使用可能性

アクション 使用可能性
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード1: レスポンスにカスタムクラスを追加

このサンプルコードは、oEmbedレスポンスにカスタムCSSクラスを追加しています。

add_filter('get_oembed_response_data', function($response, $url, $provider) {
    if (isset($response['html'])) {
        $response['html'] = str_replace('<iframe', '<iframe class="custom-class"', $response['html']);
    }
    return $response;
});

参考URL: https://developer.wordpress.org/reference/hooks/get_oembed_response_data/

サンプルコード2: 特定のURLからのレスポンスを除外

このコードは、特定のoEmbedプロバイダのレスポンスを除外する方法を示しています。

add_filter('get_oembed_response_data', function($response, $url, $provider) {
    if (strpos($url, 'example.com') !== false) {
        return false; // レスポンスを無効化
    }
    return $response;
});

参考URL: https://developer.wordpress.org/reference/hooks/get_oembed_response_data/

サンプルコード3: レスポンスのメタ情報を追加

このサンプルでは、oEmbedレスポンスにカスタムメタ情報を追加しています。

add_filter('get_oembed_response_data', function($response, $url, $provider) {
    if (isset($response['html'])) {
        $response['meta']['source'] = 'Custom Source'; // メタ情報を追加
    }
    return $response;
});

参考URL: https://developer.wordpress.org/reference/hooks/get_oembed_response_data/

サンプルコード4: エラーハンドリング

このコードは、サポートされていないoEmbedタイプに対するエラーメッセージを追加します。

add_filter('get_oembed_response_data', function($response, $url, $provider) {
    if (empty($response)) {
        return ['error' => 'このoEmbedタイプはサポートされていません。'];
    }
    return $response;
});

参考URL: https://developer.wordpress.org/reference/hooks/get_oembed_response_data/

サンプルコード5: 追加データの統合

このサンプルでは、外部APIからデータを取得し、oEmbedレスポンスに統合しています。

add_filter('get_oembed_response_data', function($response, $url, $provider) {
    // 外部APIからデータを取得
    $external_data = file_get_contents('https://api.example.com/data');
    $response['external_data'] = json_decode($external_data, true);
    return $response;
});

参考URL: https://developer.wordpress.org/reference/hooks/get_oembed_response_data/

この関数について質問する


上の計算式の答えを入力してください