WordPress升级到2.3.1
授权方式:署名,非商业用途,保持一致,转载时请务必以超链接(http://www.fwolf.com/blog/post/366)的形式标明文章原始出处和作者信息及本声明。以前用的是2.2版本,现在最新版是2.3.1,我看重的主要改进是添加了tag的支持,就升过来了。
升级过程非常简单,下载包,解压,覆盖,然后执行一下wp-admin/upgrade.php就可以了。
忘记了WordPress从哪个版本开始支持Widgets功能的,可我用的这个模板是从1.5版本的默认主题,一路改过来的,虽然没有动大手术,琐碎的修改还是有一些的。对于我这个懒人来说,重新套模板然后更改显然是不划算的,虽然后来学聪明了,有些修改作成了插件,剩下的好像也不少,所以尽可能的在旧模板的基础上更改。
Widgets好像就是个可高度自定义的sidebar,在我现在的模板中,打开Widgets页面总是提示“No Sidebars Defined”,不支持,好在我的要求也不高,咱自己动手,丰衣足食。
Wordpress的wp-includes/widgets.php这个文件,是Widgets的主要实现代码,所以修改主要是参照了这个文件的内容。好了,开始编辑现在这个旧模板的sidebar文件。
首先,要把存档archive改成下拉列表框,月份多了实在看着不舒服,widgets.php中有这么一段:
function wp_widget_archives($args) {
extract($args);
$options = get_option('widget_archives');
$c = $options['count'] ? ‘1′ : ‘0′;
$d = $options['dropdown'] ? ‘1′ : ‘0′;
$title = empty($options['title']) ? __(’Archives’) : $options['title'];
echo $before_widget;
echo $before_title . $title . $after_title;
if($d) {
?>
<select name=”archive-dropdown” onchange=’document.location.href=this.options[this.selectedIndex].value;’> <option value=”"><?php echo attribute_escape(__(’Select Month’)); ?></option> <?php wp_get_archives(”type=monthly&format=option&show_post_count=$c”); ?> </select>
可以看出,内置的wp_get_archives函数的参数,原来只有type=monthly,现在多了format=option和show_post_count=$c,前者应该代表是否下拉列表框形式显示,值的定义为$options['dropdown'];后者是是否显示本月文章计数,值的定义为$options['count'],并且都是用1代表真,0代表假,所以修改就简单了,把原来的:
<?php wp_get_archives('type=monthly'); ?>
更改为:
<select name="archive-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;’> <option value=”"><?php echo attribute_escape(__(’Select Month’)); ?></option> <?php wp_get_archives(”type=monthly&format=option&show_post_count=1″); ?> </select>
就行了。
然后,把archive月份存档和category分类列表的位置互换,分类列表放在上面,直接调整代码顺序即可,同时给分类列表也加上分类计数的显示:
<li><h2>Categories</h2>
<ul>
<?php wp_list_cats('sort_column=name&show_count=1'); ?>
</ul>
</li>
最后,添加Tag Cloud,没有这个升级就白作了,参照widgets.php中的:
function wp_widget_tag_cloud($args) {
extract($args);
$options = get_option('widget_tag_cloud');
$title = empty($options['title']) ? __(’Tags’) : $options['title'];
echo $before_widget;
echo $before_title . $title . $after_title;
wp_tag_cloud();
echo $after_widget;
}
没什么太复杂的,直接调用wp_tag_cloud()函数,连参数都没有,最终代码为:
<li><h2>Tags Cloud</h2>
<ul>
<?php wp_tag_cloud(); ?>
</ul>
</li>
这样就大功告成了,虽然模板不支持Widgets,侧边栏倒也符合我的基本使用需要了。

Save to Browser Favorites
Ask
backflip
blinklist
BlogBookmark
Bloglines
BlogMarks
Blogsvine
BUMPzee!
CiteULike
co.mments
Connotea
del.icio.us
DotNetKicks
Digg
diigo
dropjack.com
dzone
Facebook
Fark
Faves
Feed Me Links
Friendsite
folkd.com
Furl
Google
Hugg
Jeqq
Kaboodle
linkaGoGo
LinksMarker
Ma.gnolia
Mister Wong
Mixx
MySpace
MyWeb
Netvouz
Newsvine
PlugIM
popcurrent
Propeller
Reddit
Rojo
Segnalo
Shoutwire
Simpy
sk*rt
Slashdot
Sphere
Sphinn
Spurl.net
Squidoo
StumbleUpon
Technorati
ThisNext
Webride
Windows Live
Yahoo!
Email This to a Friend
If you like this then please subscribe to the