我有一个页面(不是博客帖子),我需要在上面嵌入一个iframe(它是为了“集成”外部服务的产品目录)。我在原始HTML编辑器中添加了iframe代码并保存了页面。我查看了页面,一切正常。
我回到编辑器,从原始HTML切换到可视化编辑器选项卡,添加了一行文本,然后想起我需要向iframe代码添加一个属性。所以我切换回原始HTML选项卡。
当我这样做的时候,帖子是完全空的。我在编辑器中输入的所有原始HTML或未输入的内容都被删除,帖子是空白的,就像我刚刚创建了一个新的一样。我不得不回滚到修订版本以恢复它。
到目前为止,解决方案是禁用可视化编辑器,但我有一个非技术合作伙伴,这不是一个理想的长期解决方案。
有没有办法控制WordPress的这种行为?我正在使用WordPress 3.1.1
谢谢
最合适的回答,由SO网友:Dougal Campbell 整理而成
我已经有一段时间在自定义本地插件中使用了此代码。或者你可以把它放在你的主题里functions.php
:
// Allow iframe in TinyMCE
function tinymce_add_iframe( $arr = array() ) {
$extra = \'iframe[id|class|title|style|align|frameborder|height|longdesc|marginheight|marginwidth|name|scrolling|src|width]\';
if ( isset( $arr[\'extended_valid_elements\'] ) ) {
// append to existing value
$arr[\'extended_valid_elements\'] .= \',\' . $extra;
} else {
// set the value
$arr[\'extended_valid_elements\'] = $extra;
}
return $arr;
}
add_filter(\'tiny_mce_before_init\',\'tinymce_add_iframe\');
这告诉TinyMCE(可视化编辑器)允许
iframe
标记及其所有属性。