禁止wordpress在code标签中自动加br

作者: 魏延是反贼. 分类: 生活·随笔

弄了一下午,终于弄好了~

wordpress有一个机制,叫做wpautop,既自动加换行符br,以及段落标签p。看似亲民的一种政策到了你要插入代码的时候,却成了累赘。

当然了,整个事情是这样发生的:

1.我要一个可以贴计算机输出文本的地方,于是有了这个:

> 这个自己写的一个样式用于输入计算机文本,等比等高黑底白字简直就跟服务器上的显示器一样好用。

2.我发现一个问题,在这个框内无论你输入多少空格,最后都变成了1个空格,这直接导致我无法完美展现输出/代码的排版,这必须不能忍啊!!于是一查,哦!原来css样式中是有控制空格的!

那就是神奇的white-space参数。在我定义的code代码样式中加上了:white-space:pre-wrap配置,果然~~空格显示了~!

3.当然了,在每一个空格都显示之后我又发现一个问题,为啥我这黑框中每一行与每一行的间距这么大呢?

用firebug一看,才发现……竟然每一行中间都有一个<br>符!怪不得!所以去掉这该死的换行符就成了重中之重~

4.功夫不负有心人,终于让我查到了~ (原文链接:给wordpress加上了个代码显示函数

之后就简单了,在formatting.php中function wpautop($pee, $br = true)的这个函数中,找到:

$pee = preg_replace_callback(‘/<(script|style).

这一段将其修改成

$pee = preg_replace_callback(‘/<(script|style|code).

保存即可

最终,在<code>样式里,我的代码们成功显示并且严格的按照空格排版。

附:<code>样式定义

code{ font-family:”Courier New”, monospace; }
code{
background:#000000;
margin:0px 0px 0px 0px;
padding-top:5px;
padding-left:5px;
padding-bottom:5px;
display:block;
color:#FFFFFF;
font-size:12px;
overflow:auto;
border:1px solid #DCDCDC;
white-space:pre-wrap;
}

标签:,

返回正文

您的留言是我最大的支持!