概要
wp_img_tag_add_loading_attrフィルタは、WordPressの画像タグにloading属性を追加するために使用されます。このフィルタを利用することで、ページの読み込み速度を改善し、ユーザー体験を向上させることができます。このフィルタは次のような機能を実装する際によく使われます。
- 画像の遅延読み込みを有効にする。
- 特定の条件に基づいて画像のロードの優先度を調整する。
- 他のプラグインと連携し、より効率的な画像の管理を行う。
- SEO対策として、画像の遅延読み込みに対応させる。
- アクセシビリティの向上を図るため、適切な属性を追加する。
- 再利用性のあるカスタム画像出力を実装する。
- 各画像の表示条件を制御する。
- モバイルデバイス向けに最適化された画像処理を行う。
構文
add_filter('wp_img_tag_add_loading_attr', 'your_custom_function', 10, 3);
パラメータ
$content: 画像タグのHTML内容。$id: 画像のID。$attachment: 画像のアタッチメントデータ。
戻り値
- 変更後の画像タグHTML。
関連する関数
こちらのリンクから、関連する関数を確認できます: 関連する関数
バージョン情報
- このフィルタはWordPress 5.5.0以降で使用可能です。
- 特定のバージョンでの非推奨または削除の情報はありません。
コアファイルのパス
/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: 基本的な遅延読み込みの追加
add_filter('wp_img_tag_add_loading_attr', function($content, $id, $attachment) {
return str_replace('<img', '<img loading="lazy"', $content);
}, 10, 3);
このコードは、すべての画像タグにloading="lazy"属性を追加します。
サンプルコード2: 特定の画像にのみ遅延読み込みを設定
add_filter('wp_img_tag_add_loading_attr', function($content, $id, $attachment) {
if ($id === 123) { // 画像IDが123の場合
return str_replace('<img', '<img loading="lazy"', $content);
}
return $content;
}, 10, 3);
このコードは、特定の画像(ID 123)のみに遅延読み込みを適用します。
サンプルコード3: 画像の条件付き遅延読み込み
add_filter('wp_img_tag_add_loading_attr', function($content, $id, $attachment) {
if (strpos($attachment->post_mime_type, 'image/') !== false) {
return str_replace('<img', '<img loading="lazy"', $content);
}
return $content;
}, 10, 3);
このコードは画像のMIMEタイプを確認し、画像であれば遅延読み込みを追加します。
サンプルコード4: カスタム条件による遅延読み込み
add_filter('wp_img_tag_add_loading_attr', function($content, $id, $attachment) {
if (is_single() && in_the_loop()) { // シングルページ内のループ中
return str_replace('<img', '<img loading="lazy"', $content);
}
return $content;
}, 10, 3);
このコードは、シングルポストのループ内でのみ遅延読み込みを適用します。
サンプルコード5: HTMLのクリーンアップ
add_filter('wp_img_tag_add_loading_attr', function($content, $id, $attachment) {
$content = str_replace('style=".*?"', '', $content); // スタイル属性を削除
return str_replace('<img', '<img loading="lazy"', $content);
}, 10, 3);
このコードは、画像タグのstyle属性を削除しつつ、遅延読み込みを追加します。