WordPress Logo

WordPressの投稿編集画面で[メディアを追加]から画像を挿入するとき、余分なクラス名も一緒に出力されることに煩わしさを感じているのは私だけでしょうか?

通常、デフォルトのままだと、画像を挿入すると <img> タグに以下のようなクラス名が付与されて出力されます。

class="size-full wp-image-1234"

毎回このコードを削除するのが面倒なので、根本から解決する方法を編み出しました。

「メディアを追加」から画像を挿入するとき、フィルターフックの「image_send_to_editor」が出力されるコードを司っています。
これを利用して、正規表現で「class=」に該当する箇所を削除します。

具体的には、テーマファイルの「functions.php」に以下のコードを記述することになりますね。

function my_image_send_to_editor($html, $id, $caption, $title, $align, $url, $size, $alt) {
	$html = preg_replace('/(s)?class=".+?"(s/)?/', '', $html);
	return $html;
}
add_filter('image_send_to_editor', 'my_image_send_to_editor', 1000, 8);

「add_filter」の第3、第4引数で「1000」と「8」を指定しています。
「1000」はフィルターフックが実行される優先度で、この場合は優先度を低く(=処理をなるべく後回しに)したいので適当に「1000」としています。
「8」のほうは関数「oz_image_send_to_editor」の引数の数を意味しています。

WordPressには数多のフィルターフックが用意されており、今回のようなちょっとした改造を施すだけでその後のサイトの運用がずいぶんラクになります。
ぜひお試しください。