概要
wp_img_tag_add_decoding_attrフィルタは、WordPressにおいてimg要素にdecoding属性を追加するために使用されるフィルタです。このフィルタは、ページの読み込み速度を向上させるために、ブラウザに画像のデコード方法を指示するための属性を追加します。主に以下のような機能を実装する際に使用されます。
- 画像表示時のパフォーマンス最適化
- 画像のロード属性制御
- SEO対策としての属性設定
- アクセシビリティ向上
- レスポンシブ画像の管理
- 多様なメディア形式のサポート
- 異なるブラウザ間での互換性向上
- ユーザビリティの向上
構文
add_filter( 'wp_img_tag_add_decoding_attr', 'callback_function' );
パラメータ
$content(string)- imgタグのHTMLコンテンツ。$attachment_id(int)- 添付ファイルのID。
戻り値
- 調整されたimgタグのHTML。
関連する関数
使用可能なバージョン
- WordPress 5.5以上
コアファイルのパス
wp-includes/media.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: decoding属性の追加
add_filter('wp_img_tag_add_decoding_attr', function($content) {
return str_replace('<img', '<img decoding="async"', $content);
});
説明: すべてのimgタグにdecoding="async"属性を追加します。これにより、ブラウザは画像を非同期でデコードすることができます。
サンプルコード 2: 特定の画像だけに属性を追加
add_filter('wp_img_tag_add_decoding_attr', function($content, $attachment_id) {
if ($attachment_id === 123) { // 特定の画像ID
return str_replace('<img', '<img decoding="async"', $content);
}
return $content;
}, 10, 2);
説明: 特定の画像ID(例えば123)のimgタグにのみdecoding="async"属性を追加します。
サンプルコード 3: decoding属性の条件付き追加
add_filter('wp_img_tag_add_decoding_attr', function($content) {
if (is_single()) { // 投稿ページの場合
return str_replace('<img', '<img decoding="auto"', $content);
}
return $content;
});
説明: 単一の投稿ページに表示される画像にだけdecoding="auto"属性を追加します。
サンプルコード 4: カスタムフィルタの使用
function custom_decoding_attr($content) {
return str_replace('<img', '<img decoding="async"', $content);
}
add_filter('wp_img_tag_add_decoding_attr', 'custom_decoding_attr');
説明: カスタム関数を作成してimgタグにdecoding="async"属性を追加します。この方法で、コードの再利用が容易になります。
サンプルコード 5: 画像の形式に応じた属性追加
add_filter('wp_img_tag_add_decoding_attr', function($content) {
if (strpos($content, 'src="image.png"') !== false) { // 特定の画像形式
return str_replace('<img', '<img decoding="sync"', $content);
}
return $content;
});
説明: 特定の画像形式(ここでは’image.png’)のimgタグにdecoding="sync"属性を追加します。