在本机上调试了一个星期后,终于把 WP 升级到了 2.3。因为 native tag support 的原因,不得不放弃了 UTW 这个超级好用的插件,我拿 UTW 做得一些 SEO 工作也得全部作废了。反正我就是不喜欢 Wordpress 的越来越华而不实,从 2.1 开始就没干过正经事儿了,反而让我越发不满意 wordpress 的运行效率。抱怨归抱怨,以下是调试 WP2.3 中碰到的一些问题,主要是和模板相关的。

糟糕的 Tag 体验

WP 提供了原生的 tag 支持,不过这个 the_tags() 函数实在是有够弱的,一是它必须是 strictly in the loop,而我的模板 single page 里的 metadata 都是显示在 sidebar 中的,the_category()the_time() 都能工作的很好,就 the_tags() 显示为空。我又不想把 tag 放到日志的 loop 里,最后只能在 sidebar 里做个 rewind 操作了,代码如下:

<?php if(is_single()) { ?>
  <?php rewind_posts(); ?>
  <?php while(have_posts()): the_post(); ?>
  <h2 id="metadata">Metadata</h2>
    <dl>
      <dt>Metadata</dt>
      <dd class="date" title="postdate"><?php the_time('Y.n.j') ?> / <?php the_time('ga') ?></dd>
      <dd class="category" title="category"><?php the_category(', ') ?></dd>
      <dd class="tag" title="tag"><?php the_tags('',', ','') ?></dd>
    </dl>
  <?php endwhile; ?>
<?php } ?>

原本在 UTW 下,对于没有 tag 的日志可以指定相应的 tag 替代文字,例如”No Tag”,但是在 WP 里,the_tags() 弱到没有 tag 也输出个 null 值来。我自然是希望在没有赋予日志 tag 的情况下,tag 栏里显示”No Tag”信息啦。看了下 wordpress wp-includes 目录下的 category-template.php 文件里 get_the_tags() 函数,其中有这么一段:

if ( empty( $tags ) )
	return false;
return $tags;

get_the_tags() 函数在没有找到 tag 的情况下会返回为 false 值。我把 the_tags() 的调用改成了以下这句,这样就能在没有 tag 的情况下显示”No Tag”了:

<?php if(!(get_the_tags())) echo 'No Tag'; else the_tags('',', ',''); ?>

删除 UTW

用 WP2.3 导入了 UTW 的 tag 之后,就可以把 UTW 彻底移出了,UTW 在数据库里添加了 wp_post2tag, wp_tag_synonyms, wp_tags 这三个表,在 mysql 里用以下命令直接删除吧 ( 建议先备份数据库 ):

mysql> DROP TABLE wp_post2tag,wp_tag_synonyms,wp_tags;

插件相关

不喜欢 WP-PageNavi 新版自作多情添加 CSS 样式文件,我的 CSS 文件都是用 gzip 压缩过的了,再说我更愿意自己定义 WP-PageNavi 的样式。编辑 pagenavi.php 文件,注释掉以下这段就是了:

### Function: Page Navigation CSS
#add_action('wp_head', 'pagenavi_css');
#function pagenavi_css() {
# echo "\n".'{/*  Start Of Script Generated By WP-PageNavi 2.20  */}'."\n";
# echo '<link rel="stylesheet" href="'.get_option('siteurl').'/wp-content/plugins/pagenavi/pagenavi-css.css" type="text/css" media="screen" />'."\n";
# echo '{/*  End Of Script Generated By WP-PageNavi 2.20  */}'."\n";
#}

Tiger Style Administration 是个很漂亮的 WP 后台主题,不过在 2.3 下显示似乎有点问题,最明显的就是 footer 位置偏了。我稍微修改了下它的 css 文件,喜欢这个插件的又想在 2.3 下正常使用的直接 下载我修改过的 CSS 文件 吧。