syntaxhighlighter 是一个高亮代码的好工具,我没有使用 wordpress 中的插件,而是自己去集成了它,不过每次都加载,是很慢的,于是就希望其能动态加载,官方在3.0版本里提供了动态加载的方法(autoloader 方法),不过也是在预先加载两个核心 JS 的情况下才能实现的,这样的减肥方法不太吸引人,于是在网上寻找方法,看到下面文章:在WordPress指定页面加载指定JavaScript或CSS代码
文章中提到使用自定义字段的方法来动态加载 css 或者 js,这就是一个可以利用的地方,打造开始:
function loadCodeHighter($type) {
$current_path = get_option('siteurl') .'/wp-content/themes/nopride/syntaxhighlighter/';
?>
<link type="text/css" rel="stylesheet" href="<?php echo $current_path; ?>styles/shCore_all.css" />
<script type="text/javascript" src="<?php echo $current_path; ?>scripts/shCore.js"></script>
<?php
if ($type == "cpp") {?>
<script type="text/javascript" src="<?php echo $current_path; ?>scripts/shBrushCpp.js"></script>
<?php
} elseif ($type == "bash") { ?>
<script type="text/javascript" src="<?php echo $current_path; ?>scripts/shBrushBash.js"></script>
<?php
} elseif ($type == "css") { ?>
<script type="text/javascript" src="<?php echo $current_path; ?>scripts/shBrushCss.js"></script>
<?php
} elseif ($type == "php") { ?>
<script type="text/javascript" src="<?php echo $current_path; ?>scripts/shBrushPhp.js"></script>
<?php
} else { ?>
<script type="text/javascript" src="<?php echo $current_path; ?>scripts/shBrushPlain.js"></script>
<?php }?>
<script type="text/javascript">
SyntaxHighlighter.all()
</script>
<?php
}<?php if (is_single() || is_page()) { $code = get_post_meta($post->ID, 'code', true); if (!empty($code)) { loadCodeHighter($code); } } ?>
About the Author
Recent Comments
发表评论
不错的思路,赞一个!请教一下,如果文章中是用<pre class="brush: js">这种调用方法,提取字段的地方应该怎么写?
回复
2010年8月26日 19:30
不好意思,邮件通知有点问题,所以回复晚了。
如果你在function.php的判断函数里面加入了js的判断的话,可以将这个字段与函数里的东西对应即可,比如
elseif ($type == “js”) { ?>
那么只需要在code字段里面填上js就可以了
回复