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開発がサクサク進められますな。
おつかれさまでした。