从HTML切换到可视编辑器,然后再切换回完全剥离页面内容

时间:2011-04-09 作者:red4d

我有一个页面(不是博客帖子),我需要在上面嵌入一个iframe(它是为了“集成”外部服务的产品目录)。我在原始HTML编辑器中添加了iframe代码并保存了页面。我查看了页面,一切正常。

我回到编辑器,从原始HTML切换到可视化编辑器选项卡,添加了一行文本,然后想起我需要向iframe代码添加一个属性。所以我切换回原始HTML选项卡。

当我这样做的时候,帖子是完全空的。我在编辑器中输入的所有原始HTML或未输入的内容都被删除,帖子是空白的,就像我刚刚创建了一个新的一样。我不得不回滚到修订版本以恢复它。

到目前为止,解决方案是禁用可视化编辑器,但我有一个非技术合作伙伴,这不是一个理想的长期解决方案。

有没有办法控制WordPress的这种行为?我正在使用WordPress 3.1.1

谢谢

2 个回复
最合适的回答,由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 标记及其所有属性。

SO网友:Dave Hunt

在HTML和可视化编辑器之间切换时,Wordpress编辑器对iFrames或高级HTML的处理很差(我已经多次遇到这个问题)。

最好是使用iframe添加页面模板(page-{id}.php),或者使用添加iframe短代码的插件,如下所示:

http://wordpress.org/extend/plugins/easy-iframe-loader/

这在非技术人员编辑帖子的环境中尤其有用。

结束

相关推荐

有什么方法可以阻止编辑者修改我的HTML吗

有没有办法防止可视化编辑器在创建帖子或页面时修改我的HTML?我知道它在做它所做的事情时有着良好的意图,但有时我希望它不要接触我的HTML,而是在视觉模式下呈现HTML。非常感谢。Sample of code used in editor:<td width=\"124\" align=\"left\" valign=\"top\"> <p style=\"line-height: 140%; font-size: 10px; color: #333; font-fami