升级到wordpress3.0主题模板修改
作者:笑望书 发布时间:July 19, 2010 分类:建站心得
wordpress3.0出来有一段时间了,一直没有去试,我有几个用wp做的站,除了觉得没必要用到3.0的功能外,升级后模板还需要小小修改和调整,也是让我懒得动手去升级的原因。今天终于抵挡不住wordpress的栏目二级域名功能,决定去试水一下,试水之间先在网上找了一篇讲解升级到wordpress3.0主题模板修改攻略的文章,不错呀这样节省了自己很多时间。
1. 查看多出来的文件情况
里面有个languages/twentyten.pot这是把主题所有_e()/__()的文字都抽出来,方便制作语言包用的,如果不需要自己制作语言包则用不到,像我比较喜欢原汁原味,所以直接删除。(删除的目的,是方便和原主题进行文件对比)
editor-style.css/editor-style-rtl.css 用来自定义编辑器样式,一般也用不到,删除掉。
onecolumn-page.php 没有侧边栏的单页模板,用不到就删掉。
rtl.css 这是为那些从右到左阅读的国家准备的样式,咱用不到就删掉。
2. 开始一个个文件对比查看是否新增功能代码
按名称排序文件:
404.php
新增了一句javascript代码:
<script type="text/javascript">
// focus on search field after it has loaded
document.getElementById('s') && document.getElementById('s').focus();
</script>
注释已经说得很明确,页面载入之后激活输入框(注意js代码并不是页面load之后执行,所以需要放在搜索框代码下面才能生效)。另外,增加了error404 not-found等class,还有就是提示的标题,这些影响不大改不改无所谓。
archive.php/author.php/category.php/search.php/tag.php
改动较大,主要是使用了新的模板函数get_template_part(),以前我们制作主题发现好几个页面里面有相同的代码,现在这个函数就是解决这个重复问题,配合新文件loop.php把需要重用的代码都放里面,然后可以调用某个片段,很方便,更多关于loop.php的用法,见官方介绍,需要注意的是loop.php主要就是以前模板文件中文章显示的代码,做过模板的就会感觉很熟悉,只是多了一个可以根据不同分类的id、name、slug进行显示不同的代码样式,默认有gallery和asides,我用不到就都去掉了,其他代码照着以前改就行。
attachment.php
附件页面,用于显示附件详细信息,包括上传的图片、音频、视频等,本博客用不到,删除掉,我比较喜欢简洁。(如果没有此文件,如有附件任然会用文章的模板,所以不用担心)
comments.php
评论表单改为一个新增的函数comment_form()可以自定义数组参数进行修改,但是有些代码是直接写死的,所以要高度自定义可以用以前老的代码。wp_list_comments( array( 'callback' => 'twentyten_comment' ) );增加了一个回调函数,用来自定义评论列表区分评论和pingback,本博客不需要就去掉了回调函数。其他没什么大的改变。
footer.php/page.php
没啥大改变,根据自己主题编辑按以前修改的方式即可。
header.php
可以发现新的主题采用了和本博客一样的HTML5文档头:
<!doctype html>
终于赶上潮流了,为以后方便进入到HTML5+CSS3做准备。另外在head标签增加了
<link rel="profile" href="http://gmpg.org/xfn/11" />
修改了嵌套回复评论的js调用代码
<?php if ( is_singular() && get_option( 'thread_comments' ) ) wp_enqueue_script( 'comment-reply' ); ?>
这里有个值得学习的地方
<?php $heading_tag = ( is_home() || is_front_page() ) ? 'h1' : 'div'; ?>
当首页的时候网站名称就使用h1标签,当其他页面就使用div,不得不佩服老外的严谨和细致,为啥这样做呢?我理解是seo的时候,一个页面尽量保持少的h1,突出页面重点,而首页文章列表标题都是h2,这是网站名称成了重点,到了文章页面,文章标题用了h1,网站标题用了div,突出了文章标题重点,相当的细致,不得不服,保持每个页面只有一个h1,多个标题的时候,h1/h2/h3层次清晰明了,值得在开发其他网站时借鉴!(注:本博客因为是个人非商业博客,没有这么做,所有页面全部都是网站名称作为h1,文章啥的标题用h2,因为我无所谓seo)
还有home_url();这样的新增函数自行去官方查看,影响不大,原来函数也都支持。
如果需要支持最新的后台Appearance–Menus自定义导航栏,需要在functions.php注册一下:
if ( function_exists('register_nav_menus') ) {
register_nav_menus(array(
'primary' => 'Primary Navigation',
));
}
然后header.php里边调用
<?php wp_nav_menu( array( 'container_class' => 'menu-header', 'theme_location' => 'primary' ) ); ?>
另外,在头部自己加入feedsky、FeedBurner的朋友,一般用automatic_feed_links(false);去掉默认生成的feed,现在这个函数默认就是false了,所以可以从functions.php中移除了。(我的functions.php是空的,我不需要什么widget和自定义menus)
sidebar.php
主要是对widgets支持,但是我自己是追求简单极致,所以基本都是最老的方式直接写侧边需要的栏目,不使用后台生成widgets,这样还能减少数据库操作。并且大部分提供widgets的插件都会提供直接调用的模板函数,所以也不用担心。
sidebar-footer.php
这个是在footer.php中通过get_sidebar( 'footer' );调用底部的widgets,用不到就删掉。
functions.php
上面已经提到了,很多功能我都不需要,所以我的这个文件是空的。
至此主题文件代码升级修改完毕,再对比一下config.inc.php看看有没有改变,发现没有,整个升级过程完成!以后wordpress再出新版本只需要将新版本的twentyten和上一版本的twentyten对比,看看改动了那些,然后再修改自己的主题即可。
我也准备升3.0了,来学习一下。