从Wordpress 2.3发布以来, Tagging 功能为广大博主带来了很大的方便,但同时,很多主题也出现了不支持这一特性的情况。在网上找到了这两篇文章,其一“修改当前主题使之支持 Wordpress 2.3 的 Tags 功能”,其二“让UTW用wordpress 2.3来实现tag功能”,希望对刚刚升级到Wordpress2.3的同学有些帮助。Wordpress 2.3已经于9月24日发布。许多 Blogger 将会很快升级到这个版本,因为新版程序提供了一个非常热门的 SEO 工具– Tagging。Wordpress 2.3 使用内建的 Tagging 和 TagCloud 功能,已经没有了设置很困难的插件。 Wordpress 2.3 提供了两个易于使用的 API 调用,可以插入到任何主题中。在以后的主题中将会被普遍的增加。
很遗憾,这意味着您如果想使用这个功能,就需要更新您的主题。如果您是在 Wordpress 主题站下载的主题,您无法知道主题的作者是否或愿意更新自己的主题。毕竟,还有很多主题连 Widget 支持都没有提供呢。
很幸运,您可以自己更新主题
并且这并不难。修改之前,要做好备份。只需要复制“Wordpress\wp-contents\theme\themename”目录。读到这里,我将假设您还不了解您使用的主题的内部流程。我将简单写一下函数,然后我将讲解一下如何把 Tags 加入到您的主题中。
循环引用 PHP 代码来在 Blog 上显示信息。这里提供了一个无样式表的 Wordpress 主题框架。如果您想看看如何让 Wordpress 工作的代码,可以看一下。如果您打开“index.php ”文件,您会发现 Wordpress 使用了一串 PHP 命令来读取和显示相关的信息和内容,比如:标题、作者、日期或评论的数量。主题的作者以这个循环为起始然后在其基础上设计出布局和样式信息,这样,纯文本信息就显示成了多样的,丰富格式的 Blog 页面,拥有了色彩、图片和富有创意的布局。
循环的代码在这里:
- <?php while( have_posts() ) : the_post(); ?>
- <div class="post" id="post-<?php the_ID(); ?>">
- <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>">
- <?php the_title(); ?></a></h2>
- <?php the_category( ', ' ); ?> <?php the_author(); ?> <?php the_time('F jS, Y'); ?>
- <?php edit_post_link('Edit',' ',''); ?> <br/> <?php comments_popup_link('No Comments', '1 Comment', '% Comments'); ?> <?php the_content(); ?>
- </div>
- <?php endwhile; ?>
增加 Tags 并没有在循环中增加太多命令
查看您的“ \wordpress\wp-content\themes\themename ”目录您会找到如下两个文件:
index.php
single.php
“ index.php ”文件是 Wordpress 页面的主文件。当某人访问您的 Blog 的主页时将要载入的。这个文件将调用页眉、页脚以及侧栏。它也包含此循环。这是我们第一个要加入 Tags 调用的页面。在文章中插入 Tag 显示只需要在函数中添加一条命令:
- <?php the_tags('前缀', '间隔符', '后缀'); ?>
“前缀”,“间隔符”和“后缀”请替换成您希望在 Tag 行中显示的字符。如果您希望在文章内容后面显示 Tags ,并且在“上一页”之前,只要简单的复制这段代码并粘贴在这段代码的后面:
- <?php the_content(); ?>
您可以把代码放到您想要的位置。在下面的截图中,我把 Tag 加在了评论数显示项的下面。 Wordpress 的 API 拥有非常明了的名称,所以,你可以知道每个函数片段的真正用途。
添加 Tagging 之前:

添加 Tagging 之后:

“ single.php ”通常和“ index.php ”需要差不多的修改,除了它显示的是特定的文章,并且不进行循环。除非您的主题显示独立文章时显示在和主页面有非常大差别的页面中,您需要把 Tags 精确的放在相同的地方。您需要把 Tags 代码放在和“ index.php ”相同的位置。
TagCloud 云
Tag 云也已经被很好的支持了。这有一个“ Flickr-style ”来列举多个 Tags ,并且某个标签受欢迎将使用大字体显示。 Tag 云显示 Blog 中所有使用中的 Tags ,比单个文章显示的 Tags 要多,所以放在侧栏或页脚比较适合。为了示范,这有个 Tag 云的在单篇文章页的演示:

如果您想创建一个侧栏单元并包含Tag云,您需要先安装Executable PHP Widget插件或类似的程序,这将允许您在侧栏单元中运行 PHP 代码。当插件激活后,把相应侧栏单元开启并添加 PHP 代码。命名一个标题,添加如下代码到主窗口里。
- <?php wp_tag_cloud('smallest=8&largest=36&'); ?>
这将会显示所有 Blog 上正在使用的 Tags ,按照名称排列,文章最少的显示为 8pt 的大小,文章最多的显示为 36pt 的大小。更多关于设置显示效果的细节可以在这里找到。
如果您想把 Tag 云放在页脚中,您需要在文本修改器中修改“ wordpress\wp-content\theme\themename\footer.php ”就像在“ index.php ”这个文件中一样,简单的把代码放在合适的位置上。页脚是比较多边的,所有我无法明确的告诉您应该放在哪里。同上, Wordpress 的 API 是非常容易理解的,所以,想象一下您喜欢什么样子,那就把它放在哪里了。您也可以回头再次修改它达到您的目的。
不是很难,不是吗?我希望我在您想使用 Wordpress 2.3 的这个新功能的时候帮助到了您。 Tagging 是几乎所有 SEO 的专业推荐。把 Tagging 做为了标准功能的 Wordpress 2.3 将给各位带来很大的好处,不再是那些安装插件的人的专利。
========================和谐的分割线========================
下面的是继对上文的扩充,主要是对一些问题的解答,基本上属于上一篇文章的FAQ。
Wordpress 2.3 有没有导入 Ultimate Tag Warrior 、 Simple Tagging 、 Jerome’s Keywords 数据的功能?
从 WP 2.3 Beta 2 开始,开始支持自动导入这些插件的数据。 Beta 3 是我安装的第一个版本,我记得导入 UTW 的时候并没有什么选项和额外的步骤。在程序的后台有相应的导入功能,并且没有复杂的选项。功能还是相当完善的。
您如何定义 Tag 的显示效果?
这里列举了三种定义显示效果的代码:

- <?php the_tags('Article Tags>> ', ' | ' , ''); ?>

- <?php the_tags('Tags<LI>', '<BR />' , '</LI>'); ?>
配合修改“Style.css”,显示成列表方式比较漂亮。

- <?php the_tags('Tags<LI>', '<LI>' , '</LI>'); ?>
升级后的主题还能否工作在 WP 2.3 以前的版本上吗?
给主题设计者的重要提示! Blogging Pro 问到了这个问题,并且 Nathan Rice 很快给予了答复。 PHP 允许在使用一个功能之前先检查它是否存在。如果您使用限制语句来限制只有 WP 2.3+ 的用户才能调用 Tag 功能。如果你没有使用限制语句而输入了 Tag 代码,那么使用 WP 2.2 的用户将会出现错误信息。主题设计者也许想像这样限制他们的 Tag 代码:
- <?php if ( function_exists('wp_tag_cloud') ) : ?>
- <?php the_tags('Article Tags>> ', ' | ' , ''); ?>
- <?php endif; ?>
可以看出,新版程序的 Tag 功能在主题中调用还是挺简单的,各位如果需要在自己的主题中加入 Tag 支持,应该很容易实现的。
========================和谐的分割线========================
从UTW完美过渡到WP2.3 TAG
安装的时候UTW和wp自带的tag功能有冲突,看了一下,其实解决方法还是很简单.
首先移除或者暂停UTW.然后到/wp-admin/import.php里导入UTW数据(导的过程很简单,一路Next即可).
接下来就是页面展现的问题了.可以用the_tags来展示.比如:
- <?php the_tags('Tags: ', ', ', '<br />'); ?>
UTW的用户的Tag搜索结果界面应该是一个page,默认的是tag.php.
然后把tag.php里的utw标签换成wp自带的即可.
比如我的tag.php是这样的.
- <h2 style="margin: 0 0 0 150px;">当前 Tag: <?php single_tag_title(); ?></h2>
接下来是Tag Clouds,UTW一般是以tags.php为模板建立的page,所以我们还是只需用wp_tag_cloud标签改tags.php即可.
例如tags.php可以这样写
- <?php wp_tag_cloud('smallest=8&largest=22&number=1000&order=DESC'); ?>
然后基本就是接近完美的tag了.
最后再次感谢两位作者精彩的文章:
修改当前主题使之支持 Wordpress 2.3 的 Tags 功能
让UTW用wordpress 2.3来实现tag功能

2007年10月02日 12:57 下午
我天天来给你贡献IP。