是否允许来自特定站点的iframe?

时间:2017-08-23 作者:joetek

通过kses过滤,WordPress只允许一篇文章或页面中的html标记子集,它去掉的标记之一是<iframe> 标签(有很多好的理由)。

我想允许编辑器包含iFrame,其中src来自我们的其他子域之一,或者来自指定的域白名单,但仍然去掉其他未知的src。绕过KSE允许所有<iframe>\'s、 但是,是否可以只允许某些域?

1 个回复
SO网友:Dylan

我愿意register an embed handler 具有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是嵌入的名称:)您需要在的第二个参数中更新regexwp_embed_register_handler 以及在回调函数中匹配您希望能够嵌入到网站上的页面。

结束

相关推荐

如何在我的iframe插件中插入html/css/js?

我目前有一个iframe插件,它通过短代码显示在WordPress页面上。目前,我一直在iframes“src”中显示网站,但最近我遇到了一个问题,即显示我自己的html/css/js页面。Here is a functioning html page for a chatbox that I would like to include in my iframe.聊天室的文件很大,显示聊天室的html文件使用谷歌的cdn,并从其他文件获取脚本/样式标记。The code for my iframe plu