作者更新页面时IFRAME消失

时间:2018-09-26 作者:Sensoray

如果用户具有作者角色并被列为页面的作者,则当他们对页面进行更改并单击更新时,会进行更改,但所见即所得中的iframe会消失,不再显示在后端或前端。如果管理员或编辑器进行了更改并将其保存,则iframe将保持不变。

除了将用户角色更改为编辑器之外,如何防止iframe消失?

我尝试让作者将iframe代码粘贴到文本视图中,并在所见即所得的文本视图中进行更新。

我尝试将这些代码片段添加到函数文件中,希望它可以防止wp剥离它,但这是行不通的。

这是:

function custom_rewrite_basic() {
   add_rewrite_rule(\'^about-us/careers/([\\w\\d-]+)/?\', \'index.php? 
   post_type=jobs&name=$matches[1]\', \'top\');
}
add_action(\'init\', \'custom_rewrite_basic\');

function add_iframe($initArray) {
    $initArray[\'extended_valid_elements\'] = "iframe[id|class|title|style|align|frameborder|height|longdesc|marginheight|marginwidth|name|scrolling|src|width]";
    return $initArray;
}

// this function alters the way the WordPress editor filters your code
add_filter(\'tiny_mce_before_init\', \'add_iframe\');
还有这个:

function km_add_unfiltered_html_capability_to_editors( $caps, $cap, $user_id ) {
    if ( \'unfiltered_html\' === $cap && user_can( $user_id, \'editor\' ) ) {
        $caps = array( \'unfiltered_html\' );
    }
    return $caps;
}
add_filter( \'map_meta_cap\', \'km_add_unfiltered_html_capability_to_editors\', 1, 3 );

1 个回复
SO网友:Tom J Nowell

请注意,允许iFrame直接出现在帖子内容区域可能会很危险,这就是为什么出于安全原因将其剥离。

多站点上的超级管理员或单个站点上的管理员具有unfiltered_html 功能,并可以在帖子内容区域插入任何他们喜欢的内容,但这很危险。例如,授予作者此功能将允许他们将粘贴javascript复制到帖子内容区域。如果不是信用卡盗窃者或路由器恶意软件,我会对比特币矿工保持警惕。

相反have you considered using an iframe shortcode? 如果iframe用于视频或其他类型的嵌入,则OEmbed 将是适当的前进道路

iframe嵌入通过OEmbed工作实现[embed] 自动进行快捷编码,您甚至会发现块编辑器为您创建块

结束

相关推荐

WP Customizer+GULP+Browsersync=拒绝在IFRAME中显示?

我正在使用gulp&;WP开发中服务器的browserSync:gulp.task(\'browser-sync\', function () { browserSync.init({ proxy: projectURL }); }); WordPress运行于localhost:3000/mysite还有一个监视任务可以检测php中的更改并重新加载浏览器。由于某些原因,尽管WP customizer没有在iframe中加载站