浮萍漂泊本无根
天涯游子君莫问

wordrepss让pre支持php代码并换行

前言

今天在wordpress的使用中,发现放上去php源码后,因为有DIV标签,可能会导致页面错乱。上网搜了一下,是因为WordPress 自身有一个强大的 HTML 标签过滤系统,会导致在文章和评论中插入的 PHP、CSS、HTML、JS 等代码直接消失,因此需要将codepre内的符号标签编码转义为 HTML 实体。所以,还得动手。

解决方案

使用wordpress的add_filter() 可以挂载一个函数到指定的过滤器上。具体操作就是在所用的主题目录的fuction.php文件加上一下代码

/*转译php代码*/
add_filter( 'the_content', 'pre_content_filter', 0 );

function pre_content_filter( $content ) {
return preg_replace_callback( '|<pre.*>(.*)</pre|isU' , 'convert_pre_entities', $content );

}

function convert_pre_entities( $matches ) {
return str_replace( $matches[1], htmlentities( $matches[1] ), $matches[0] );

}

给代码加上高亮

wordpress默认是没用代码高亮的,可以使用google的代码高亮工具Code-prettify。只用把相关的JS和css文件嵌入到你的网页中就行了。你可以选择去官网上把最新的文件Download下来,放在服务器上,也可以选择远程加载 <script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script> 。线上引用发的好处是能实时更新,建议放在整个页面的底部加载应该是个不错的选择。 万事俱备了,加载好文件后想使用Code-prettify就是非常简单的事情了。只需要加上class=”prettyprint”属性就行了,这样就支持了几乎80%的开发语言。

B2主题让pre支持换行

如果你和博主一样使用的7B2主题,默认pre虽然有高亮,但是同样不支持自动换行。可以新增代码

 .entry-content pre{ 
white-space:pre-wrap; /* css3.0 */ 
white-space:-moz-pre-wrap; /* Firefox */ 
white-space:-pre-wrap; /* Opera 4-6 */ 
white-space:-o-pre-wrap; /* Opera 7 */ 
word-wrap:break-word; /* Internet Explorer 5.5+ */ 
}
赞(0) 打赏
未经允许不得转载:主题秀 » wordrepss让pre支持php代码并换行

评论 抢沙发

评论前必须登录!

 

更好的WordPress主题

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册