WordPress2.8自定义分类

原文:Custom taxonomies in WordPress 2.8
翻译:Epile
首发于译言

想象您经营一个关于图书、电影、音乐评论的网站。当你在WordPress写文章时,您需要把它标记为一本书,同时你也想进一步标记它的类型或作者。

通常我们会通过使用类别和标签进行系统分类。现在我要告诉您如何摆脱这种硬性的分类系统并按自己喜欢的方式。

在WordPress2.3 ,Taxonomy API 被引入。它允许我们构建自己的分类。这里有一个问题:没有人使用自定义分类。

在WordPress2.8 ,创建自定义分类不再是插件开发者的事情了。普通用户可以通过几行代码建立和使用它们需要的任何分类。WordPress会帮我们完成剩下的工作:在文章撰写页面添加自定义输入框,在管理界面加入新的页面以便管理自定义分类。

什么是分类?

我知道这个词可能对于大多数来说并不熟悉。总之,分类是一种组织项目的方式。这是Answers.com给出的分类的定义 :

生物分类显示有序的自然关系。
科学,法律,或原则的分类;分类学。
划分为有序的群体或类别。
第三个定义或许是最适合我们的目的。

默认情况下, WordPress预装了三个分类: category , post_tag ,link_category。前两个允许我们能够以某种方式标记我们的文章。最后一个允许我们给链接进行分类。我将在本教程告诉您如何轻松地创建并自己的分类。

每个分类有所谓的关系。例如,您的所有tag标签其实都是在post_tag分类下的。

本文讲的分类指的是针对文章Tag的分类。

新分类的特性

在您建立了新的分类,WordPress将会自动为您创建的管理面板。在你写文章得时候会有一个新的自定义输入框。这是使WordPress2.8很酷的新特性。本教程我们将建立三个分类:人物,地点和动物。

在你写新文章时你将看到如下的画面:

taxonomies-write-post

下面是People分类的管理界面:

edit-taxonomy

你们当中有些人可能已经注意到在网页上不少地方出现“Tag标记”。我不知道这是否会在未来更新或者它可以很容易地改变。

如何创建一个自定义分类

这里我只是照顾普通水平的用户。插件开发人员可以借此做各种巧妙的事情。此外,WordPress2.8的新特性只适用于文章中像Tag一样的分类(非等级)。

在这个例子中,我们将创造三个自定义分类:人物,地点和动物。您可以创建更多或只要你想要的。

打开主题的functions.php文件或创建一个插件文件。添加以下代码:

<?php
add_action( ‘init’, ‘create_my_taxonomies’, 0 );

<?php
add_action( ‘init’, ‘create_my_taxonomies’, 0 );
function create_my_taxonomies() {
register_taxonomy( ‘people’, ‘post’, array( ‘hierarchical’ => false, ‘label’ => ‘People’, ‘query_var’ => true, ‘rewrite’ => true ) );
register_taxonomy( ‘places’, ‘post’, array( ‘hierarchical’ => false, ‘label’ => ‘Places’, ‘query_var’ => true, ‘rewrite’ => true ) );
register_taxonomy( ‘animals’, ‘post’, array( ‘hierarchical’ => false, ‘label’ => ‘Animals’, ‘query_var’ => true, ‘rewrite’ => true ) );
}
?>

分解代码

让我们来看看一行代码,我们开始分解它的每个部分。我们注册登记的人物分类是这样子的:

  • register_taxonomy( ‘people’, ‘post’, array( ‘hierarchical’ => false, ‘label’ => ‘People’, ‘query_var’ => true, ‘rewrite’ => true ) );
  • people告诉WordPress分类的名称。
  • post告诉WordPres分类的适应对象。如果您希望您也可以作出页面的分类或链接的分类,但是在Wordpress还没有像文章分类这么简单。
  • hierarchical意味着分类可以可以在一个等级内(Category类别是等级,而Tag标签不是)。所以,我们设置此为false使行为像标签并使用新的WordPress的特性。
  • label的名字是您要在Wordpress管理面板显示的分类名字。
  • query_var让WordPress的知道你是否希望能够显示像人物分类下所有关于威尔史密斯的文章。如果您将其设置为true ,查询变量将是你的分类名称。这也可以是任何你想要的文本字符串。我们将继续简单的标记为Ture。
  • rewrite是你是否需要Wordpress为分类或存档更漂亮的永久性链接。所以,您可以拥有yoursite.com/people/will-smith ,而不是yoursite.com/?people=will-smith。

接着,我给你一些实际使用的例子。

如何使用自定义分类创建标签云

比方说,您想要一个人物分类云 ,而不是一个Tag标签云。好吧,我们会利用我们的标准wp_tag_cloud ( )模板标记加上一些额外的代码。将此代码放置在您想展示人物分类云的地方:

<?php wp_tag_cloud( array( ‘taxonomy’ => ‘people’, ‘number’ => 45 ) ); ?>

它就是这么简单。所有您需要做的是选择您的分类taxonomy。

如何为每个文章列出分类的层级

或许您要查看某一特定分类的层级以及您的文章,它们有共同的类别和标签。在这个例子中,我们将展示的人物分类的层级。在Loop循环中您想要出现分类层级的地方插入:

<?php echo get_the_term_list( $post->ID, ‘people’, ‘People: ‘, ‘, ‘, ” ); ?>

如何显示特定分类下的文章

让我们假设你想创建一个自定义页面模板或设置您的首页显示10个与“威尔史密斯”的文章 (从您的人物分类) 。在Loop循环之前添加此代码:

<?php query_posts( array( ‘people’ => ‘will-smith’, ‘showposts’ => 10 ) ); ?>

创建自己的自定义分类

分类不再是插件开发者才可以创建的事情了。现在是你自己探索自定义分类的时间了。为你的网站创建一些独特的东西吧。

我想在博客上创建一个WordPress分类,因为我博客上的文章几乎都是关于Wordpress的。

如果您有任何疑问或想看到更多的实际使用范例,请随时评论。你甚至可以列出关于新的分类法的一大张想法清单。有很多我们可以做的事情,但是出现无法在一个教程中。如果每个人都觉得需要它,我们可以再写一个。

请记住,本教程只支持WordPress2.8。

您可能还对以下内容感兴趣

目前有20条评论 Add your own

  1. jet 说道:

    我还在2.7.1。=_=

  2. 粥小卜 说道:

    我也还没升级

  3. 老n 说道:

    一直没有注意这个新功能啊。

  4. hong 说道:

    怎么创建自定义页面

  5. hong 说道:

    谢谢,哈

  6. hong 说道:

    请问自定义页面可以有LOOP循环吗?

  7. hong 说道:

    你能帮我写个例子吗?

    我急需要!

    在page页里面the loop 循环所有评论回复!

    谢谢了哦

  8. hong 说道:

    我就像做个页面显示所有评论信息的!
    帮帮我
    所有的

  9. hong 说道:

    OK了 谢谢

  10. 蓝蓝小雪 说道:

    在Loop循坏您想要的地方插入……
    错别字

  11. 蓝蓝小雪 说道:

    >q<>/q<居然不能用,日

  12. [...] Epile 的某教程增加了一个新 Tag [...]

  13. [...] Epile 的某教程增加了一个新 Tag [...]

  14. John 说道:

    这个功能非常强大,也拓展了wordpress的使用空间,据说3.0就会使用这一功能?
    我加了这个功能后,却发现一个问题:在后台的从“自己的分类”中选择使用最频繁的标签时,出现“无效条目”的提示,无法像其它标签那样选择经常使用的常用标签,这个问题如何解决呢?

我有话说..