Ksesフィルタリングを使用すると、WordPressは投稿またはページ内のhtmlタグのサブセットのみを許可し、取り除いたタグの1つは<iframe>
タグです(多くの理由により))。
編集者に、srcが他のサブドメインの1つ、または指定されたドメインのホワイトリストからのものであるiframeを含めることを許可しますが、それでも他の不明なsrcは削除します。 ksesをバイパスしてすべての<iframe>
を許可するのは簡単ですが、特定のドメインのみを許可することはできますか?
埋め込みハンドラーを登録 をwp_embed_register_handler
で行います。これにより、URLをコピーしてエディターに貼り付けるだけでなく、iframeのプレビューを表示できるという利点が追加されます。
add_action( 'init', 'se238330_register_embed_handler' );
function se238330_register_embed_handler() {
wp_embed_register_handler(
'joetek',
'#http://subdomain.yourdomain\.com/(.+)/?#i',
'wp_embed_handler_joetek'
);
}
function wp_embed_handler_embed_name( $matches, $attr, $url, $rawattr ) {
$embed = sprintf(
'<iframe class="joetek-website" src="http://subdomain.yourdomain.com/%1$s/" width="600" height="400" frameborder="0" scrolling="no"></iframe>',
esc_attr( $matches[1] )
);
return apply_filters( 'embed_joetek', $embed, $matches, $attr, $url, $rawattr );
}
上記のコードは、joetekが埋め込みの名前であると想定しています:)埋め込み可能なページに一致するように、wp_embed_register_handler
の2番目のパラメーターとコールバック関数の正規表現を更新する必要があります。あなたのウェブサイトで。