WordPress メディアを追加で不要な属性を削除する方法

WordPress メディアを追加で不要な属性を削除する方法を紹介します。
例えば、レスポンシブ対応のためにメディアを追加で挿入される img タグの中から、widthheight 属性を削除したいときに便利な方法です。

属性を削除

メディアを追加で挿入される img タグから widthheight 属性を削除したい場合は、function.php に次のコードを追加します。

/*【管理画面】メディアを追加で挿入されるimgタグから不要な属性を削除 */
add_filter('image_send_to_editor', 'remove_image_attribute', 10);
add_filter('post_thumbnail_html', 'remove_image_attribute', 10);
function remove_image_attribute($html){
$html = preg_replace('/(width|height)="\d*"\s/', '', $html); // width と heifht を削除
$html = preg_replace('/class=[\'"]([^\'"]+)[\'"]/i', '', $html); // class を削除
$html = preg_replace('/title=[\'"]([^\'"]+)[\'"]/i', '', $html); // title を削除
$html = preg_replace('/<a href=".+">/', '', $html); // a タグを削除
$html = preg_replace('/<\/a>/', '', $html); // a の閉じタグのを削除
return $html;
}

属性を削除するためにフィルターフックを使用します。
この方法では、widthheight 以外にも classtitle 属性、a タグを削除することができます。
削除が必要のない項目は適宜削除してご利用ください。

まとめ

WordPress メディアを追加で不要な属性を削除する方法を紹介しました。