【问题标题】:Keep wordpress from adding CDATA阻止 wordpress 添加 CDATA
【发布时间】:2012-08-30 11:38:51
【问题描述】:

我太新了,无法评论我找到的答案 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 把事情搞砸吗?

【问题讨论】:

    标签: html wordpress xhtml cdata


    【解决方案1】:

    虽然我很讨厌在 SO 上回答“使用插件”,但有一些插件允许您通过短代码添加代码。我在我的博客上使用了一个旧的 Qoate(在 3.4 上仍然可以正常工作);

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

    快速的谷歌也提供了这个;

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

    省去你自己设置和格式化的麻烦(专注于编写要显示的代码而不是显示它的代码!:))

    【讨论】:

      【解决方案2】:

      旧帖子,但这是我修复它的方法...尝试将此代码放入插件或您的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');
      

      【讨论】:

        【解决方案3】:

        在保存帖子时过滤掉这些标签对我有用:

        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 );
        

        【讨论】:

          猜你喜欢
          • 2012-01-19
          • 2012-03-22
          • 2016-08-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-27
          相关资源
          最近更新 更多