ワードプレス6.2以降で追加されたWP_HTML_Tag_Processorでimgタグを探し出してクラスを追加するコードをご紹介いたします。

WP_HTML_Tag_Processorとは?

WP_HTML_Tag_Processorはワードプレス6.2以降で追加されたHTML文書のタグ等を簡単に置き換えたり、追加したりできるワードプレスの独自関数です。
これまではHTMLの置換にはstr_replace等の関数を使っていた場合も多いのですが、今後はWP_HTML_Tag_Processorでも簡単に同様の処理ができるようになりました。

まずはワードプレスのコンテンツのHTMLを取得します

function your_custom_function_name( $content ) {
   //ここでコンテンツを置き換える処理を追加します
    return $content;
}
add_filter( 'the_content', 'your_custom_function_name' );

つぎにこのコンテンツをWP_HTML_Tag_Processorに入れ込むと、タグの分解などを行った構造体を変換してくれます。

function your_custom_function_name( $content ) {
    $processor = new WP_HTML_Tag_Processor( $content );
    return $content;
}
add_filter( 'the_content', 'your_custom_function_name' );

全てのIMG(画像)に一気にmycoolframeというクラスを付与,アトリビュートも一つ追加してみましょう。

function your_custom_function_name( $content ) {
    $processor = new WP_HTML_Tag_Processor( $content );
    // img タグを探してループを回す
    while ( $processor->next_tag( 'img' ) ) {
        // クラスを追加(既存のクラスがあれば保持される)
        $processor->add_class( 'mycoolframe' );
        // 属性を設定(既存なら上書き、なければ追加)
        $processor->set_attribute( 'loading', 'lazy' );
    }
    // 変更後のHTMLを取得
    $content = $processor->get_updated_html();
    return $content;
}
add_filter( 'the_content', 'your_custom_function_name' );

これでワードプレスの全ページのコンテンツのすべての画像タグに’mycoolframe’というクラスとloadingアトリビュートにlazyが追加されました。

ご参考になりましたら幸いです。

WordPress ワードプレスのコーディングやテーマのカスタマイズのご依頼・ご相談はWPドクターまでお気軽にお送りください