问题是"What is the Difference Between Hierarchical and Non-Hierarchical Taxonomies?"这个问题一开始真的让我很困惑,所以我想向浏览网站寻找区别的其他人展示这种区别是个好主意。
具体而言,问题是指hierarchical
参数传递给register_taxonomy()
作用更具体地说,这两者之间的区别是什么:
“层次结构”=>;错误
register_taxonomy(\'movie-genre\', \'movie\', array(
\'hierarchical\' => false,
\'label\' => \'Genre\',
\'query_var\' => \'movie-genre\',
\'rewrite\' => array(\'slug\' => \'genres\' ),
));
这个呢?
“层次结构”=>;对
register_taxonomy(\'movie-genre\', \'movie\', array(
\'hierarchical\' => true,
\'label\' => \'Genre\',
\'query_var\' => \'movie-genre\',
\'rewrite\' => array(\'slug\' => \'genres\' ),
));
请注意,我将继续回答我自己的问题,但除非其他人也拿出一个真正好的答案,否则我不会把它评为最好的。此外,我的直觉告诉我,我可能没有抓住这两个二分法之间的所有区别,因此如果没有,请告诉我们我遗漏了什么。
最合适的回答,由SO网友:MikeSchinkel 整理而成
这个simple answer 层次分类法中的术语可以child terms。但还有什么?
“层次结构”=>;如果指定\'hierarchical\'=>false
您可以获得以下类型的元框,这是WordPress也用于Post标签的元框格式:
“层次结构”=>;如果指定\'hierarchical\'=>true
您可以获得以下类型的元框,这是WordPress也用于类别的元框格式:
当然,上面的例子也指出了分层分类可能有点复杂,因为在现实生活中,子类别通常适用于许多父类别。即使是这样的高耸;“许多父母”不是WordPress中分级分类法的工作方式,但我几乎不可能完美地对任何事物进行分类,无论WordPress是如何工作的。所以请注意清空
关于自定义分类法注册,或;为什么它不能保存"E
如果你是一个尝试自定义分类法的新手,(
或者是一个经验丰富的开发人员,没有注意到我写这篇文章时发生的事情!)虽然与这个问题没有直接关系,但你可能会尝试添加
register_taxonomy()
就像你在问题中看到的代码直接进入你的主题
functions.php
文件哎呀!
如果您将代码直接添加到functions.php
您的metabox将显示,但不会保存新添加的术语(和\'heirarchical\'=>true
元数据库的表单现有术语不会使用复选框加载。)这是因为您需要在init
胡克,就像这样:
<?php
add_action(\'init\',\'register_movie_genre_taxonomy\');
function register_movie_genre_taxonomy() {
register_taxonomy(\'movie-genre\', \'movie\', array(
\'hierarchical\' => true,
\'label\' => \'Movie Genre\',
\'query_var\' => \'movie-genre\',
\'rewrite\' => array(\'slug\' => \'genres\' ),
));
}
希望这有帮助!