[WordPress]ショートコードで取得した記事のiframeを使えるようにする。

function.phpでショートコードを定義し、その中で記事を取得していた。記事の中にiframeがあった場合にうまく表示できなかったので解決してみた。

WordPressには「wp_kses_allowed_html」関数が提供されているので、これを使う。

「wp_kses_allowed_html」ではHTMLタグをcontextに与えることで、許可させることが可能になるそう。

許可したいタグ「iframe」とその属性で許可するものを配列で定義するだけです。

function custom_wpkses_post_tags( $tags, $context ) {
	if ( 'post' === $context ) {
		$tags['iframe'] = array(
			'src'             => true,
			'height'          => true,
			'width'           => true,
			'frameborder'     => true,
			'allowfullscreen' => true,
		);
	}

	return $tags;
}

add_filter( 'wp_kses_allowed_html', 'custom_wpkses_post_tags', 10, 2 );

実装はシンプル。この内容はGitHubのissueを参考にしています。先人の方に感謝。

よかったらシェアしてね!
目次