从html切换到可视化编辑器时没有代码过滤器,怎么办?


9

是的,我已经找到了与此主题相关的其他问题,但没有一个完全相同的主题,也没有解决我的问题的方法。

如果在html选项卡中包含代码,然后切换到可视模式,然后将WP格式的代码格式化为一个块,删除所有中断并保留行,请参见屏幕截图。我认为这很容易理解为我的英语不好。

我在html-tab中的示例 在此处输入图片说明

切换到视觉后的相同示例 在此处输入图片说明

我的解决方案测试。我已经使用跟随测试插件对此进行了测试以停止WP,在此Gist 1663554中也可读

add_filter( 'tiny_mce_before_init', 'fb_tinymce', 9 );

function fb_tinymce( $init ) {

    $init['fix_list_elements'] = FALSE;
    $init['wpautop'] = FALSE;
    $init['remove_linebreaks'] = FALSE;
    $init['apply_source_formatting'] = TRUE;
    $init['extended_valid_elements'] .= ',pre[*],code[*]';

    return $init;
}

也许其他读者对此主题有解决方案。


我明白这个意思吗?您要停止编辑器以删除代码中的换行符吗?
kaiser 2012年

是的,如果您在html编辑器上包含代码并切换到可视模式,则WP会删除所有的中断,段落。这适用于editor.js,我对此不喜欢使用过滤器;也许是硬编码的,我唯一的目标是替换这个js;但它不是很好;我将停用此一次功能。
bueltge'2

Answers:



3

是的,这完全是痛苦。99%的“禁用wpautop”教程完全错过了选项卡切换事件。无论如何,您应该尝试使用我的插件-http: //wordpress.org/extend/plugins/preserved-html-editor-markup/

它不仅可以保护您的标记免受wpautop的干扰,而且可以保留换行符和缩进,同时仍然允许您同时使用HTML编辑器和Visual编辑器。

当前版本实际上将禁用wpautop,因此,如果您具有依赖于wpautop的现有内容,则在不修改现有内容的情况下,您的网站可能无法正确呈现。我正在开发一个新版本,该版本将重新格式化现有内容以更正此错误。它应该在一周结束时准备好。


1.5版即将发布,其中还将包括对真实脚本块的支持。1.4版(当前稳定版)允许有条件地包含p标签或br标签,因此您可以根据自己的喜好使用。
马库斯·波普

您是否通过过滤器使用JS或PHP实现了我的问题的功能?我只搜索一个函数,该函数的代码在tinyMCE 内部pre或未code更改。我不会解决,后面有过滤器the_content,而性能更高。谢谢!
bueltge 2012年

@bueltge-我不太明白这个问题。我的插件在解决此问题方面做了大量工作,因此我无法简要描述我使用的特定过滤器。您当然可以查看我的插件的源代码,以了解我是如何做到的。
Marcus Pope

是的,我可以阅读您的资料;但是,如果仅给我这个问题的问题给我一个关于解决方案的注释,也许会更容易。您的插件在此区域修复了很多主题。
bueltge 2012年

0

我认为您要描述的最简单的解决方案是使用类似以下的插件:http : //wordpress.org/extend/plugins/wp-no-format/

但是,您可能还想看看语法高亮显示插件...甚至还有一个按ID嵌入要点的插件。


我认为,这不是解决方案,此插件仅过滤the_content-Hook。该挂钩仅位于前端以获取内容,而不位于编辑器内部。
bueltge

抱歉。没错,这不会阻止可视化编辑器开关重新格式化代码...。已经很长时间了,因为id实际使用了它,现在看一下我与Disable Visual Editor结合使用的旧站点。
2012年

0

使用脚本n样式插件。http://wordpress.org/extend/plugins/scripts-n-styles/发明它是为了“跳过箍”并避免wpautop错误,尤其是制表符切换错误。

您将在编辑器中输入[sns_shortcode name =“ {name}”],然后在“简码”标签中输入内容。它的语法已突出显示,并且我一直在努力编写良好的代码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.