在设计WordPress主题时,我发现在functions.php文件里添加一套通用的自定义函数将会大大提高开发效率,因为这样我就可以不必每次开发主题时都需先查找然后复制同样的函数。因此我先搞定functions.php模板然后从那里开始创建主题,模板里把一些必要的准备工作都做好了,包括:
这些函数让我喜欢的共同点就是它们都非常简单明了、高效。此functions.php 模板目前包含了十五个函数,并且还在不断改善中。虽然并不是所有人都会需要使用文件中的所有函数,但我的目的是将这个模板修改为适合大家使用的通用型模板,能够让你通过这些真正实用的函数找到主题开发的突破口。
在这篇文章里,我先向大家解释下每个函数,然后将所有这十五个函数融合在一起放入到functions.php模板中。你只要复制并粘贴本文最后的代码或是获取 functions.php文件的压缩包 ,就可以通过此模板享受WordPress的基本功能,为您的开发带来的极大的便利。
WordPress2.8以后,你都可以在头部区域添加所有相关的feed链接(主体、评论、分类等),不过这并不是默认的,你需要添加下面的代码来运行:
// add feed links to header
if (function_exists('automatic_feed_links')) {
automatic_feed_links();
} else {
return;
}
这段代码先检查你是否使用可兼容的WordPress版本,然后再启用自动geed链接。几点注意事项:第一,此方法是假设你没有手动在头部添加任何feed链接。第二,根据 最近这个Trac ticket,似乎这个功能与add_theme_support已经整合在一起了。
如何包含 jQuery ? 你可以在主题的functions.php文件里添加下面的代码:
// smart jquery inclusion
if (!is_admin()) {
wp_deregister_script('jquery');
wp_register_script('jquery',
("http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"), false);
wp_enqueue_script('jquery');
}
这个代码可以确保只包含一份jQuery,并从谷歌服务器上访问它,节省带宽同时访问时还有缓存上的优势。注意,这段代码必需放在嵌套评论函数的前面才能正常运行。
一般来说,启用嵌套评论需要在头部区域添加一小段代码到wp_head 标签的前面。经过一次小实验后,我发现你可以在functions.php文件里添加这段代码:
// enable threaded comments
function enable_threaded_comments(){
if (!is_admin()) {
if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1))
wp_enqueue_script('comment-reply');
}
}
add_action('get_header', 'enable_threaded_comments');
这有助于保持 <head> 文件的整洁性,注意,这个函数需要放置在jQuery-inclusion函数的后面才能正常运作。