关闭Kindeditor for wordpress的过滤模式

2014-02-27 · 6 min read

有的时候需要直接在 Kindeditor 中写代码,例如<code>标签,编辑器本身没有这个功能的(注意“插入程序代码”是<pre>不是<code>),但是你切换“HTML 代码模式”直接写代码的时候,很多 HTML 标签和属性会被过滤掉,这就是所谓的“过滤模式”,官网有如果关闭过滤模式的文档,但是没有针对 wordpress 插件的。经过一番寻找终于修改成功,方法如下:

打开wp-content/plugins/kindeditor-for-wordpress下面的kindeditor_class.php文件,找到load_kindeditor函数,在 option 的结尾加入filterMode: false,修改后如下:

function load_kindeditor()
{
    ?>
    <script type="text/javascript">
    //<![CDATA[
        var editor;
        var options = {
            cssPath : ['<?php echo $this->plugin_path; ?>plugins/code/prettify.css','<?php echo $this->plugin_path; ?>style.css'],
            uploadJson : '<?php echo $this->plugin_path ?>php/upload_json.php',
            fileManagerJson : '<?php echo $this->plugin_path ?>php/file_manager_json.php',
            items : [
            'source', '|', 'undo', 'redo', '|', 'template', 'cut', 'copy', 'paste',
            'plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
            'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript',
            'superscript', 'clearhtml', 'quickformat', 'selectall', '|', 'map', 'baidumap','fullscreen','about', '/',
            'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold',
            'italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'multiimage','flash', 'media', 'table', 'hr', 'emoticons', 'code', 'anchor', 'blockquote', 'wpmore',
            'link', 'unlink'
            ],
            afterChange : function() {
                jQuery('#wp-word-count .word-count').html(this.count('text'));
            },
            filterMode: false
        };
        KindEditor.ready(function(K) {
                editor = K.create('#content',options);
        });
    //]]>
    </script>
    <?php
}

保存覆盖原来的文件,过滤模式就关闭了。