WordPress srcsetにショートコード出ない場合の回避方法

WordPressで「srcset」にショートコード出ない場合の回避方法です。

WordPress srcsetにショートコード出ない場合の回避方法

WordPressで記事を書くとき、当然PHPはかけないので、funstions.phpにショートコードを作成するってのは一般的ですよね。

ところが、imgタグの「srcset」にショートコードが反映しないって事態に遭遇しました。書いたコードは下記の通りです。

<img src="[ショートコード]/images/team-photo.jpg" srcset="[ショートコード]/images/team-photo-retina.jpg 2x">

src部分は変換されたものの、secsetの部分だけは変換されずに表示されてしまったんです。調べたところ解決に至れたので記事に残しておきます。

ここでは WordPressで「srcset」にショートコード出ない場合の回避方法 を紹介します。


secsetにショートコードが適用されない原因

WordPressのフォーラムによると、バージョン4.2.3の脆弱性対応によるものだそうです。そんな昔から使えなかったのかー。

バージョンが4.2.3になると、inputのvalueにショートコードが使えない

secsetにショートコードを適用する方法

secsetにショートコードを適用するには、functions.phpへ下記を記述してください。

// srcsetでショートコードを使えるようにする
add_filter( 'wp_kses_allowed_html', 'my_wp_kses_allowed_html', 10, 2 );
function my_wp_kses_allowed_html( $tags, $context ) {
  $tags['img']['srcset'] = true;
  $tags['source']['srcset'] = true;
  return $tags;
}

これでimgタグのsrcsetにショートコードが反映されます。

まとめ

WordPressで「srcset」にショートコード出ない場合の回避方法を紹介しました。

無事に「srcset」にショートコードが適用されて一件落着っと。これでWeb開発がサクサク進められますな。

おつかれさまでした。

この記事がお役に立ちましたら シェア をお願いいたします。