保持wordpress不添加CDATA

时间:2012-09-05 17:26:50

标签: html wordpress xhtml cdata

我太新了,无法评论我找到的答案here

我正在尝试发布源代码,并且wp不断将CDATA等添加到代码中,导致它无法正确显示。

根据我找到的答案,我将wp-includes \ post-template.php第167行更改为此内容。

$content = str_replace('<![CDATA[','',$content); $content = str_replace(']]>','',$content); //$content = str_replace(']]>', ']]&gt;', $content);

在修改该行后,我仍然遇到wp更改代码。我还能做些什么来阻止wp搞砸了吗?

3 个答案:

答案 0 :(得分:3)

旧帖但这就是我修复它的方法...尝试将此代码放入插件或您的functions.php文件中。

function remove_bad_things(){ ?>
<script>

jQuery('#content-html').click(function(){
  jQuery('textarea[name=content]').val( jQuery('textarea[name=content]').val().replace('// <![CDATA[','') );
  jQuery('textarea[name=content]').val( jQuery('textarea[name=content]').val().replace('// ]]>','') );
});

</script>
<?php }

add_action('admin_footer','remove_bad_things');

答案 1 :(得分:1)

就像我讨厌在SO上回答“使用插件”一样,有一些插件允许你通过短代码添加代码。我在我的博客上使用了一个名为Qoate的旧版本(在3.4版本上仍能正常工作);

http://wordpress.org/extend/plugins/qoate-simple-code-snippets/

快速谷歌也提供了这个;

http://wordpress.org/extend/plugins/wp-syntax/

尝试将所有内容设置为自己并自行格式化(专注于编写要显示的代码而不是显示它的代码来节省自己的麻烦!))

答案 2 :(得分:1)

在保存帖子上过滤掉这些标签对我来说很有用:

function my_filter_cdata( $content ) {
  $content = str_replace( '// <![CDATA[', '', $content );
  $content = str_replace( '// ]]>', '', $content );
  return $content;
}
add_filter( 'content_save_pre', 'my_filter_cdata', 9, 1 );