在本指南中,我们将介绍自定义分类法的一个不可思议的伟大特性。自定义WordPress分类法为您提供了前所未有的功能,可以对WordPress内容进行分类和相互关联。虽然WordPress分类法是在WordPress 2.3中引入的,但在WordPress 3.0WordPress的开发者。
最近,我们研究了如何在WordPress自定义帖子指南,为了进一步掌握WordPress 3.0网站和主题开发,我们现在将讨论自定义分类法。
什么是分类?
分类法只是一种组织数据的方法,在WordPress世界中,分类法是一种简单的方法分类是一种组织和连接网站内容的方法。尽管您没有意识到,但您可能已经非常熟悉至少一种内置的WordPress分类法:WordPress标记。
标签是一种分类法,因为文章可以链接到标签、按标签查看和按标签组织。另一种WordPress分类法是文章分类。分类法为WordPress增加了很多功能,因为它们允许用户过滤他们想在您的站点上看到的信息。
自定义分类法就像它听起来的那样——一种将不同的内容关联在一起的自定义方法。自定义分类法可应用于自定义文章类型或常规页面和文章。下面是一些可以使用自定义分类法的事情:
- 电影上映年
- 像紧迫性高优先级,低优先级对于服务公告
- 位置如房间的名字,邮政编码或状态事件
每一种分类法都可以帮助组织存储在WordPress站点中的信息。如果你读过自定义岗位类型指南,就比列表上的最后一个例子(事件)更熟悉。
我们的计划
中生成的事件自定义post类型WordPress自定义文章类型指南通过为它创建一个自定义分类法位置.位置分类法允许我们按位置组织事件。在我们开始之前,有几个注意事项。
首先,出于本指南的目的,我们将使用默认TwentyTen主题这是WordPress 3自带的,所以我们都有相同的基础主题。但是,这些说明可以很容易地用于使用您自己的主题。我们也会假设你遵循了自定义岗位类型指南并且已经创建了自定义事件发布类型。
好的,说了这么多,让我们开始吧!
创建自定义分类法
与自定义文章类型一样,WordPress让创建自己的自定义分类变得非常简单。让我们看一下创建Location自定义分类法所需的代码:
Add_action ('init', 'create_locations');函数create_locations (){美元的标签= array('name' => _x('Locations', '分类法通用名'),'singular_name' = bbb_x ('Location', '分类法通用名'),'search_items' => __('搜索位置'),'all_items' => __('所有位置'),'parent_item' => __('父位置'),'parent_item_colon' => __('父位置:'),'edit_item' => __('编辑位置'),'update_item' => __('更新位置'),'add_new_item' => __('添加新位置'),'new_item_name' => __('新位置名称'),);Register_taxonomy ('location','event',array(' hierarchy ' => true, 'labels' => $labels));}
上面的代码应该放在显然也
文件在您的主题目录。的register_taxonomy
WordPress函数实际上创建了分类法,让我们从传递给它的几个参数开始。
“位置”
是分类法的内部名称。“事件”
告诉WordPress什么类型的文章将使用这个分类。在本例中,我们将它绑定到自定义的Event post类型。
你可以用“职位”
或“页面”
如果您想在您的帖子和页面上使用分类法。您还可以传入多个帖子类型(通过数组),以便多种类型的内容可以使用分类法。数组(…)
最后的论点是register_taxonomy
.
它是一个PHP选项数组,告诉WordPress这个分类将如何工作。让我们看一下数组参数中的键。“分层”
是一个布尔键,用于说明分类法是否具有层次结构,即分类法是否具有子类别。
对于我们的Location分类,我们将有一个层次结构。例如,想想:1号楼,会议室A。可能有几个会议室A,但因为它的母楼是1号楼,所以我们能够赋予我们的位置更大的特异性。
“标签”
仅仅是关于分类法信息将如何打印的信息(如美元的标签
数组内的create_locations
功能)。还要注意register_taxonomy
调用是在函数中调用的create_locations
.这是我们的一个自定义函数(它可以被命名为任何你想要的名字),在WordPress初始化时被调用Add_action ('init', 'create_locations')
.
仍然和我在一起吗?我知道这有很多,但让我们继续前进,很快就会明白的。
将自定义分类法添加到帖子中
好了,现在我们已经创建了Location分类,让我们登录到WordPress并创建一些可以用于事件的位置。如果您查看Events菜单下(在管理屏幕的左侧),您可以看到一个名为“Locations”的新链接。单击它会将您带到一个屏幕,在这里您可以添加、编辑和从系统中删除位置。
创建以下位置:
- 建筑1
- 一个会议室
- 会议室B
操作完成后,您应该在Location表(就在添加的位置接口)。现在我们已经有了一些位置,让我们将它们添加到Event post中!头在添加新事件屏幕(或编辑现有事件),您应该在右侧看到一个新的Locations小部件。
出现这个小部件是因为在创建分类时,我们告诉WordPress将它与Event自定义文章类型关联起来。核对一个会议室然后发布或保存事件。注意,如果您发现缺少一个位置,您可以直接从这个屏幕添加新位置。
你应该对这整个显示很熟悉,因为它的工作原理和WordPress的帖子分类完全一样。如果您使用非层次分类法,那么它的行为将完全类似于post标记。现在我们已经创建了一些位置,并将其中一个位置用于Event帖子,我们希望在站点前端显示每个事件的位置,以便读者可以看到它们。
让我们接下来做这个。
显示分类法信息
我们想要显示位置的第一个地方是在显示单个事件时。如果您还记得在之前的自定义发布类型指南中,我们创建了一个名为single-event.php
在用于显示单个事件的主题目录中。如果您正在对默认内容类型(例如。
post或page),然后你可以做同样的事情,但只是你需要做它single.php
.当我们参观一个活动时,它看起来是这样的:我们可以添加位置(或多个位置)到帖子使用WordPress的get_the_term_list
函数,它看起来像这样:
Get_the_term_list ($id, $taxonomy, $before, $sep, $after)
以下是每一种的简要描述get_the_term_list
论点:
$ id
-要获取分类法的事件ID美元的分类
-使用什么分类法(“标签”
,“位置”
等)。美元之前
-列表之前要打印的HTML9美元
-用什么把清单上的不同项目分开美元后
-列表后要打印的HTML
我们可以用get_the_term_list
函数使用以下代码块显示分配给事件的所有位置:
<?get_the_term_list(get_the_ID(), 'location', " location: "
这告诉WordPress打印当前事件的ID (get_the_ID ()
),使用我们的Location分类法,并在列表前面加上文本“Location:”。我们不需要担心指定分隔符,因为默认分隔符(逗号)可以很好地工作。如果需要,可以使用另一个分隔符,比如-或|。
另一件需要注意的事情是,每个显示的位置将自动是一个链接到一个页面,该页面显示具有相同位置的所有帖子。(我们稍后将讨论如何自定义该页面)。将位置列表添加到我们的single-event.php
文件,替换以下部分:
< div class = " entry-meta”> < ?php twentyten_posted_on ();? > < / div > < !——.entry-meta——>
:
< div class = " entry-meta”> < ?php twentyten_posted_on ();? > < / div > < !——.entry-meta——>
WebFX职业
加入我们的使命,为全球的企业提供业界领先的数字营销服务,同时建立您的个人知识和个人成长。