这个问题让我烦恼好久,因为网站一直的代码都为一行显示,而同为使用我这个主题的网站,都没有出现过这个问题。
我的所有代码都为一行显示,后台的排版又是正常的。
如下图:
这个是后台排版的样式。
前端却显示如下:
只在一行显示。
一开始我认为是我CSS改动的原因。
指导今天我才找到原因:优化网页速度,增加了代码压缩
当代码压缩时候,没有过滤pre之间的代码。导致代码块中的代码都被压缩为一行显示。
注:如果网站没有代码分享的文章,可以不用管。
解决办法
将下面的代码放入主题的function文件中,保存。
//当检测到文章内容中有代码标签时文章内容不会被压缩
function unCompress($content) {
if(preg_match_all('/(crayon-|<\/pre>)/i', $content, $matches)) {
$content = '<!--wp-compress-html--><!--wp-compress-html no compression-->'.$content;
$content.= '<!--wp-compress-html no compression--><!--wp-compress-html-->';
}
return $content;
}
add_filter( "the_content", "unCompress");
放上这个代码后,刷新查看,所有的都正常了。
演示如下图。
另外单行代码如果超长,也会使代码框出现滑动条。
之前写的一篇《WordPress 代码块过长自动换行解决办法》可以解决这个问题。