概要
wp_embed_defaultsフィルタは、WordPressで投稿記事中に埋め込む動画などのサイズを取得する際に使用されます。このフィルタを使うことで、埋め込みコンテンツのデフォルトの幅や高さを変更することができます。特に、特定のテーマやプラグインに合わせたカスタマイズが可能です。
このフィルタは以下のような機能を実装する際によく使われます:
1. 特定のサイズに合わせた埋め込みコンテンツの表示
2. アプリケーションやテーマに基づくカスタマイズ
3. レスポンシブデザインの考慮
4. 埋め込むメディアのスタイル調整
5. ユーザーの好みに応じたビジュアル調整
6. SEOを考慮したデフォルトサイズの設定
7. 特定のページや投稿にのみ適用されるカスタマイズ
8. プラグインとの互換性調整
構文
add_filter('wp_embed_defaults', 'custom_embed_defaults');
パラメータ
このフィルタは1つのパラメータ、$defaults(配列)を受け取ります。配列の中には、widthとheightのキーがあります。
戻り値
このフィルタは変更されたデフォルトの埋め込みサイズ(配列)を返します。
関連する関数
使用可能なバージョン
このフィルタは、WordPress 4.0以降で使用可能です。
コアファイルのパス
このフィルタは、wp-includes/embed.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: 幅と高さを変更する
function custom_embed_defaults($defaults) {
$defaults['width'] = 600; // デフォルトの幅を600に設定
$defaults['height'] = 400; // デフォルトの高さを400に設定
return $defaults;
}
add_filter('wp_embed_defaults', 'custom_embed_defaults');
このコードは、すべての埋め込みコンテンツのデフォルトサイズを600×400ピクセルに変更します。
サンプルコード 2: 特定の条件でサイズを変更する
function conditional_embed_defaults($defaults) {
if (is_single()) {
$defaults['width'] = 800; // 投稿ページでは幅を800に設定
$defaults['height'] = 450; // 高さを450に設定
}
return $defaults;
}
add_filter('wp_embed_defaults', 'conditional_embed_defaults');
このコードは、シングル投稿ページにアクセスしたときのみ、埋め込み要素のサイズを変更します。
サンプルコード 3: レスポンシブ埋め込みを推奨する
function responsive_embed_defaults($defaults) {
$defaults['width'] = '100%'; // 幅を100%に設定
$defaults['height'] = 315; // 高さを315ピクセルに設定
return $defaults;
}
add_filter('wp_embed_defaults', 'responsive_embed_defaults');
このコードでは、幅を100%に設定し、高さは315ピクセルとしてレスポンシブデザインを考慮しています。
サンプルコード 4: サイズのデフォルトを動的に変更
function dynamic_embed_defaults($defaults) {
$defaults['width'] = get_option('embed_width', 560); // オプション値を取得
$defaults['height'] = get_option('embed_height', 315); // オプション値を取得
return $defaults;
}
add_filter('wp_embed_defaults', 'dynamic_embed_defaults');
このコードは、設定オプションから幅と高さを取得し、埋め込みコンテンツのデフォルトサイズを動的に変更します。
サンプルコード 5: 複数の埋め込みタイプに応じてサイズを変更する
function multiple_embed_defaults($defaults) {
if (strpos($defaults['url'], 'youtube.com') !== false) {
$defaults['width'] = 640; // YouTubeの場合は640pxの幅
$defaults['height'] = 360; // 高さは360px
}
return $defaults;
}
add_filter('wp_embed_defaults', 'multiple_embed_defaults');
このコードは、YouTubeの埋め込みコンテンツに対して特定の幅と高さを設定します。これにより、埋め込みコンテンツのサイズをメディアの種類に応じて最適化できます。