WordPress自定义分类法指南

WebFX总统。Bill在互联网营销行业有超过25年的经验,擅长SEO, UX,信息架构,营销自动化等。William在希彭斯堡和麻省理工学院的科学计算和教育背景为MarketingCloudFX和WebFX的其他关键研发项目提供了基础。

WordPress自定义分类法指南在本指南中,我们将介绍自定义分类法的一个不可思议的伟大特性。自定义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_taxonomyWordPress函数实际上创建了分类法,让我们从传递给它的几个参数开始。

“位置”是分类法的内部名称。“事件”告诉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. 建筑1
  2. 一个会议室
  3. 会议室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论点:

  1. $ id-要获取分类法的事件ID
  2. 美元的分类-使用什么分类法(“标签”“位置”等)。
  3. 美元之前-列表之前要打印的HTML
  4. 9美元-用什么把清单上的不同项目分开
  5. 美元后-列表后要打印的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——> 

现在如果我们在浏览器中刷新事件的页面,我们现在可以看到分配给它的位置:通过自定义分类法过滤帖子

通过自定义分类法过滤帖子

现在我们已经在事件页面中显示了Location分类,我们需要配置一个页面模板来显示给定位置的所有事件。如前所述,“会议室A”链接将自动将您带到一个显示给定位置的所有帖子的页面(当您想知道在“会议室A”将发生什么其他事件时,这是非常有用的)。但是由于我们将分类法绑定到自定义事件类型,所以我们需要亲自动手进行一些修改。

如果我们按原样链接,我们将看到以下内容:通过自定义分类法过滤帖子为了理解这是怎么回事,我们需要了解一点WordPress的模板的层次结构.无论何时在WordPress中加载一个页面,它都会根据指定的命名约定在主题中查找要加载的正确模板。当用户遇到一个分类页面时,WordPress检查使用哪个WordPress主题页面模板的顺序如下:分类,(your_taxonomy_term). php>taxonomy-taxonomy.php>taxonomy.php>archive.php>index . php

这意味着,从左到右,WordPress将使用它遇到的第一个符合命名约定的文件。在TwentyTen WordPress主题中,第一个匹配的文件是archive.php因为前三个文件都不存在。这就解释了为什么我们在页面中看到了“博客档案”的标题。

为了显示我们的位置,我们将添加一个名为taxonomy-location.php.因为它在页面模板层次结构中较高(也就是说,它是分类——分类法词汇。php), WordPress将加载这个文件而不是archive.php当用户点击位置分类页面时。所以,开始吧,创造taxonomy-location.php的目录,并复制的内容tag.php这样我们就有了一个起点。

我们需要做的第一件事是获取我们当前查看的位置(如“会议室A”)。WordPress术语称之为术语当前自定义分类法的。要获取事件发布的术语,请在get_header ()线。

<?PHP $term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy'));? >

所有的术语信息(ID、名称等)都存储在美元的术语变量,所以我们现在可以将它输出到任何我们想要的地方。我们将在页面的顶部显示术语,所以让我们用我们自己的位置标题替换标签标题。所以请继续修改这个代码块:

< h1类= "页面标题" > < ?php printf(__('标签档案:%s', 'twentyten'), ''。

Single_tag_title (", false)。< / span >);h1 ? > < / >

:

< h1类= "页面标题" > < ?php printf(__('Events in Location: %s', 'twentyten'), ''。项- >名称。

< / span >);h1 ? > < / >

现在,如果我们点击活动中的“Conference Room A”链接,就可以看到我们正在查看的位置。但是仍然没有事件显示。为了解决这个问题,我们需要修改默认值WordPress循环手动查找事件,而不仅仅是post。

就在你添加的行下面,添加下面的行,这样我们就可以创建一个自定义的WordPress查询:

<?PHP query_posts(数组('post_type'=>'event', 'location'=>$term->slug));? >

query_posts将覆盖默认的WordPress循环,并将其替换为一个自定义循环,该循环可以找到所有具有当前位置的事件。由于WordPress中的一个bug(目前),当前位置的任何其他文章类型也将被返回。现在这对我们来说还不是问题,但是将来在使用自定义分类法时要记住这一点。

一旦我们添加了query_postCall,这是我们看到的:如你所见,我们现在展示了我们所有的“会议室A”活动(我们只有一个),太棒了!如果您注意到,在最初创建位置时,可以选择指定位置描述。我们如何将其添加到模板中呢?

这很容易。只需在结尾的正下方加上下面的一行h1标签taxonomy-location.php

< >强描述:< /强> < ?PHP echo term_description(", get_query_var('taxonomy'));? >

现在我们的页面看起来像这样:这是它!

我们现在在单个事件页面上显示我们的自定义分类,还可以列出给定位置的所有事件。

总结

我希望在阅读了这篇指南之后,您现在对如何设置您自己的自定义WordPress分类法有了很好的了解。这是我们所做的:

  1. 创建一个自定义分类法(位置分类法)
  2. 向帖子添加Location分类(在本例中,在Event自定义帖子类型中)
  3. 在帖子中显示自定义分类法
  4. 根据自定义分类法筛选和显示帖子
  5. 为我们的自定义分类法创建一个页面模板

随着WordPress 3中自定义文章类型的加入和自定义分类法的改进,内容创建的空间真的是无限的。您将如何使用这个新功能?

相关内容

WebFX职业

加入我们的使命,为全球的企业提供业界领先的数字营销服务,同时建立您的个人知识和个人成长。

我们招聘! 视图30 +职位空缺!