问题是WordPress的TinyMCE核心配置,它剥离了IFRAME标记。
您可以通过挂接到tiny_mce_before_init
. 例如,以下代码将阻止TinyMCE剥离IFRAME、PRE和DIV标记:
function mytheme_tinymce_config( $init ) {
// Change code cleanup/content filtering config
// Don\'t remove line breaks
$init[\'remove_linebreaks\'] = false;
// Convert newline characters to BR tags
$init[\'convert_newlines_to_brs\'] = true;
// Preserve tab/space whitespace
$init[\'preformatted\'] = true;
// Add to list of formats to remove with Remove Format button
$init[\'removeformat_selector\'] = \'b,strong,em,i,span,ins,del,h1,h2,h3,h4,h5,h6,pre\';
// Do not remove redundant BR tags
$init[\'remove_redundant_brs\'] = false;
// Add to list of valid HTML elements (so they don\'t get stripped)
// IFRAME
$valid_iframe = \'iframe[id|class|title|style|align|frameborder|height|longdesc|marginheight|marginwidth|name|scrolling|src|width]\';
// PRE
$valid_pre = \'pre[id|name|class|style]\';
// DIV
$valid_div = \'div[align<center?justify?left?right|class|dir<ltr?rtl|id|lang|onclick|ondblclick|onkeydown|onkeypress|onkeyup|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|style|title]\';
// Concatenate
$cbnet_valid_elements = $valid_iframe . \',\' . $valid_pre . \',\' . $valid_div;
// Add to extended_valid_elements if it alreay exists
if ( isset( $init[\'extended_valid_elements\'] ) ) {
$init[\'extended_valid_elements\'] .= \',\' . $cbnet_valid_elements;
} else {
$init[\'extended_valid_elements\'] = $cbnet_valid_elements;
}
// Pass $init back to WordPress
return $init;
}
add_filter(\'tiny_mce_before_init\', \'mytheme_tinymce_config\');
See here for the full list of configurable options.