众所周知WordPress
会对编辑器里的内容再格式化一遍,比如自动分段。但有些时候这些添加的格式反而也会让人很头疼。最近遇到WordPress
在input
,select
,pre
前会插入额外的换行即<br>
,从而破坏页面样式的问题。
解决方法为在对应主题的functions.php
中增加如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php /* * Description: Disable wpautop on posts/pages with custom field 'wpautop' == false. */ function custom_wpautop($content) { if (get_post_meta(get_the_ID(), 'wpautop', true) == 'false') return $content; else return wpautop($content); } remove_filter('the_content', 'wpautop'); add_filter('the_content', 'custom_wpautop'); remove_filter ('comment_text', 'wpautop'); add_filter('comment_text', 'custom_wpautop'); /*tinyMCE*/ function disable_tinymce_autop($initArray){ if (get_post_meta(get_the_ID(), 'wpautop', true) == 'false'){ $initArray['wpautop'] = false; $initArray['forced_root_block'] = ''; $initArray['force_br_newlines'] = TRUE; $initArray['force_p_newlines'] = FALSE; } return $initArray; } add_filter('tiny_mce_before_init', 'disable_tinymce_autop'); ?> |
然后在需要禁止自动格式化的文章中,按照如下图示步骤增加"自定义栏目"
之后,向下滚动页面,在页面编辑的最下面:
添加如下图所示的内容:
添加后的结果如下:
注意,如果安装了Crayon Syntax Highlighter
插件,并且启用了插件对于pre
,code
标签的拦截,则可能会导致上面的设置无效,其中的换行,其实是Crayon Syntax Highlighter
插件引入的。一般我们是要求Crayon Syntax Highlighter
插件拦截pre
标签,而不拦截code
标签。