wordpress
WordPress 投稿画像のクラス削除
作成日: 2024年9月11日
これはテーマやプラグインにより違いがあるが、wp-image数字とかimage数字とか勝手に挿入される属性がある。
あっても無くても基本関係ないが、無い方が良いのはバイト数関連から明らかなので特にこの属性を使わないなら消す、そのコード。
よくネット上に流布されているのはclass=””もろとも削除が多いが、ベースにある「alignなんちゃら」は残したいから属性に付与される共通のアルファベットの先頭一致で削除とした。
function image_tag_delete( $html ) {
$html = preg_replace_callback(
'/class=[\'"]([^\'"]+)[\'"]/i',
function ($matches) {
// 'image' に続く数字(image123 など)を削除
$updated_classes = preg_replace('/\bimage\d+\b/', '', $matches[1]);
// 複数のスペースを1つにまとめ、トリムする
$updated_classes = trim(preg_replace('/\s+/', ' ', $updated_classes));
return 'class="' . $updated_classes . '"';
},
$html
);
return $html;
}
add_filter( 'image_send_to_editor', 'image_tag_delete', 10 );
add_filter( 'post_thumbnail_html', 'image_tag_delete', 10 );
この部分\bimage\d+\b、imageが先頭一致するととなるので付与される内容によりここを書き換えれば良い(と思う)。
大したものではないが「コードは極力シンプルに」と考えればこんなものもfunctions.phpに仕込んでおいてもいいかも。