无需语法高亮插件, 轻松在WordPress文章中显示所有代码语法

有时候写文章需要用到一些特殊的符号和代码, 但是这些代码会被与普通的文本是有区别的, 不可以直接呈现在文章中, 所以就有了各种各样的显示代码的解决方案.

使用语法高亮插件最普遍的做法, WordPress下的语法高亮插件非常丰富, 例如Syntax Highlighter 也就是Google Syntax Highlighter for WordPress, 服务器端的代码高亮插件Highlight Source Pro, 支持多中代码语言的iG Syntax Hiliter, 简单的老牌高亮插件WordPress Code Highlight, WordPress Code Highlight 插件修改而成的Coolcode等等.

但是许多人和EI一样在文章插入代码的机会非常少, 为了一两篇文章使用一个插件感觉有点小题大作. 直接在可视化编辑模式下输入代码可以显示出代码, 这些代码在可视化编辑模式下会被转换为HTML Entities(实体), 例如"&"在HTML Entities下则转换成了"&", 虽然表面上看似乎没有转换, 切换到HTML编辑模式或者查看页面的源代码就可以看到转变后的不同.

但是Wordpress会自动转换半角符号为全角符号, 因为中文中使用的都是全角符号, 全角符号会导致一个不小的问题, 就是在文章中复制下来的代码不能直接使用, 所有的代码都是使用半角符号, 例如全角的双引号替换掉半角的引号在代码中会出错. 而且修改起来非常麻烦.

我们需要关闭Wordpress自带的这个转换器来让Wordpress正常的显示我们所输入的所有代码, 也就是关闭Wordpress自带的文章符号过滤器.

方法非常简单, 打开主题的functions.php文件, 添加下面的代码:


<?php remove_filter('the_content', 'wptexturize'); ?>

上面的代码可以让文章内容的过滤器失效, 达到显示代码的作用.

如果还想要在其他地方显示正常的代码, 例如标题, 摘要, 评论, 文章标题, 博客信息, 描述, 小工具的文本等等, 可以按照自己的要求去除相应的过滤器, 可用下面的代码来达到我们的目的:


$qmr_work_tags = array(
'the_title',
'the_content',
'the_excerpt',
'comment_text',
'list_cats',
'single_post_title',
'comment_author',
'term_name',
'link_name',
'link_description',
'link_notes',
'bloginfo',
'wp_title',
'widget_title',
'term_description',
'category_description',
'widget_text'
);

foreach ( $qmr_work_tags as $qmr_work_tag ) {
remove_filter ($qmr_work_tag, 'wptexturize');
}

需要注意的一点是, 这种实现方式需要在可视化编辑模式下输入文章的代码, 在HTML模式下会导致大部分代码丢失.

如果想实现类似EI站上的代码效果, 用点CSS吧!

作者: EI

链接: 无需语法高亮插件, 轻松在WordPress文章中显示所有代码语法

本站所有文章,除特别标明外, 皆为原创. 如需转载, 请复制粘贴下面的代码到文章底部.

转载自 <a href="http://www.ei2u.com/wordpress/work/503.html" title="无需语法高亮插件, 轻松在WordPress文章中显示所有代码语法" rel="bookmark">无需语法高亮插件, 轻松在WordPress文章中显示所有代码语法 | e网软摘</a>