【WordPress】キャプション付きの画像を追加する際にwidthを指定させない方法

WordPressで記事を投稿するとき、「メディアを追加」ボタンからキャプション付きの画像を挿入しようとすると、思っていたより画像の横幅が大きくなってしまうことがあります。

原因はcaptionのショートコードでstyle属性にwidthが指定されてしまうため。対策としてよくあるのはstyle属性を削除してしまうとか、cssでwidth: 100% !important;を付けるとか色々あるようです。
ただ、上記の対応だとせっかくの画像サイズ指定が無視されてしまうので、それはそれで微妙な気持ちになってしまいます。

対策

widthで指定されてしまうところをmax-widthに変えてしまえば、サイズ指定は無駄にならず、かつ予定より大きくなってしまうことも防げるはず。

function.phpに以下を記載することで、widthをmax-widthに変更させることができます。

 function filter_caption_max_width( $output, $tag ) {
     if ( 'caption' === $tag || 'wp_caption' === $tag ) {
         $output = str_replace( 'width:', 'max-width:', $output );
     }
     return $output;
 }

 add_filter( 'do_shortcode_tag', 'filter_caption_max_width', 10, 2 );

いいなと思ったら応援しよう!