概要
get_oembed_response_data
フィルタは、oEmbedレスポンス情報を取得する際に使用されます。このフィルタは、oEmbedプロバイダから取得したレスポンスを加工したり、カスタマイズしたりするために利用されます。
このフィルタは、以下のような機能を実装する際によく使われます:
- oEmbedレスポンスの拡張情報を追加する
- 特定の条件に基づいてレスポンスをフィルタリングする
- レスポンスの形式を変更する
- カスタムスタイルまたはスクリプトをレスポンスに追加する
- 特定のメタデータを除外する
- サポートされていないoEmbedタイプのエラーメッセージを表示する
- 既存のoEmbedプロバイダからのレスポンスを修正する
- 外部のAPIから取得したデータと統合する
構文
add_filter('get_oembed_response_data', 'your_function_name', 10, 3);
パラメータ
$response
: 既存のoEmbedレスポンスデータの配列。$url
: レスポンスが生成されたoEmbed URL。$provider
: レスポンスが取得されたプロバイダの情報。
戻り値
改変されたoEmbedレスポンスデータの配列。
関連する関数
ワードプレスのバージョン
このフィルタは、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/