所以在这里,我再次发现自己在与wordpress wysiwyg编辑器作斗争。我的一个客户要求将他的网站迁移到WP。没有问题,微风:)。真的很容易,从一个DB结构迁移到另一个,一切都很顺利
现在我有个问题。旧网站使用了一个编辑器,在内容中添加了<br
>和<p>
标签,以便对其进行格式化(对我来说听起来是合法的)。但是wordpress不允许使用这些标签。每当客户端试图编辑帖子时,WP都会删除它认为"非法"的所有HTML标记。
所以我继续搜寻。首先,我尝试安装一些我为这个问题找到的推荐插件(比如这个)。对我来说根本不起作用(我相信对其他人来说是这样)。。。
然后我发现了一个帖子,告诉我在function.php文件中添加一个函数,它将删除过滤器:
function mod_mce($initArray) {
$initArray['verify_html'] = false;
return $initArray;
}
add_filter('tiny_mce_before_init', 'mod_mce');
还有这个:
function my_tinymce( $init ) {
$ext = 'div[id|name|class|style]';
if ( isset( $init['extended_valid_elements'] ) ) {
$init['extended_valid_elements'] .= ',' . $ext;
} else {
$init['extended_valid_elements'] = $ext;
}
return $init;
}
add_filter( 'tiny_mce_before_init', 'my_tinymce' );
函数。不,也没用。。。
有人知道吗?这看起来很傻,但围绕这个话题有很多争论。。。感谢
您可以尝试删除wpautop用于过滤内容和摘录的过滤器,只需将这些过滤器放在您的函数.php文件中即可
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
参考:WordPess wpautop
允许在tinyMCE 中加载带有p和br的旧内容
function my_tinymce_config( $init ) {
$init['remove_linebreaks'] = false;
$init['convert_newlines_to_brs'] = true;
$init['remove_redundant_brs'] = false;
return $init;
}
add_filter('tiny_mce_before_init', 'my_tinymce_config');
参考:tinyMCE配置查看清理/输出并尝试使用这些。
另一种方法可能有帮助参考
tinyMCE.init({
...
verify_html : false
});