自定义分类:相同的术语,但年份不同

时间:2012-12-10 作者:Johannes

我正在建立一个寄宿公寓的人员目录。我想做的是能够为每个人分配以下元数据:

客房号停车位号领导职位的关键在于,每个职位都与specific year, i、 e.:

2010年,约翰·史密斯住在2号房间,有5个停车位,是众议院议员view people according to these properties, i、 e.我想看看所有“众议院委员会”成员或所有住在1号房间的人的名单。

我最初的想法是创建一个自定义的post类型“Residents”,带有一个自定义(层次)分类法“Metadata”,它将包含以下术语:

2010年,40室,41室,42室,等,等,等,等2011年客房(如上)停车位(如上)虽然这将允许我根据房间、停车位和领导层对住户进行筛选specific 年,我希望能够通过房间号筛选住户all 年份,即:我希望能够查看过去10年中居住在2号房间的所有居民,而不是查看2010年居住在2号房间的所有居民(这只是根据2010>房间编号>2进行过滤的情况)。

这只是一个查找边栏小部件的例子,它允许我从“元数据”分类中的多个父术语中选择一个特定的子术语(例如,从“2010”、“2011”、“2012”等中选择“Room 1”),还是这里涉及到更大的架构谬误?

如果我有什么不清楚的地方,请告诉我。提前感谢!

2 个回复
SO网友:barakadam

你确实可以通过分类来实现一切,但这是个好主意吗?如果所有主要类别都是2010、2011、2012,并且每个类别都有名为Room1、Room2等的子类别,那么您确实可以轻松地按年份或房间进行搜索。按年搜索只需查询相应的类别即可。按房间搜索意味着首先创建一个数组或cat编号列表,通过循环所有类别来查找所有年份中名为“Room1”或“Room2”的所有类别。有了列表,搜索将非常容易执行
所有这些都很好,可以快速实施。我唯一担心的是,这个解决方案实际上是一种黑客行为,对您的数据模型不太“合乎逻辑”。第一:是否每年只分配房间?它们不是按时段分配的吗?像这样重复类别并不是一种表示数据的干净方法,因为这样会重复信息。更好的方法是为房间、停车场等创建自定义张贴类型,并每年将其分配给用户,例如通过自定义字段关联年份和设施。所有自定义字段都有唯一的ID,使用与帖子相同的主键,因此它们总是清晰地分开。因此,您完全可以使用字段将年份和设施ID与Y2010:F223(223是停车场的ID等)相关联。然后,可以很容易地使用自定义字段值进行搜索(搜索Y2010、Y2011或F21等)。

SO网友:Vikram

这可以在自定义分类法的帮助下轻松完成您只需创建三个分类法Year、Rooms和Parking space,然后您就可以根据query\\u帖子中的任何值筛选结果

add_action(\'init\', \'custom_taxonomy\');
function custom_taxonomy(){
register_taxonomy("years", \'post_type_slug\', array("hierarchical" => true, "label" => "Years", "singular_label" => "Years","rewrite" => true) );
register_taxonomy("rooms", \'post_type_slug\', array("hierarchical" => true, "label" => "Rooms", "singular_label" => "Rooms","rewrite" => true) );
register_taxonomy("parking", \'post_type_slug\', array("hierarchical" => true, "label" => "Parkings", "singular_label" => "Parking","rewrite" => true) );
}

结束

相关推荐

How to add taxonomy in menus?

书籍(自定义帖子类型)小说(税)科学(税)历史(税)--书籍体裁(税务)小说(术语)科学(学期)历史(学期)以下哪一项是做这件事的“好方法”?对于前一个(这是我目前在管理菜单中的功能,我为每个功能都提供了“register\\u taxonomy”功能),我无法选择要在菜单中显示的“Tax”。而对于后者,我可以将它们添加到菜单中,只需要一个“register\\u taxonomy”函数。