层级和非层级分类之间的区别是什么?

时间:2010-08-22 作者:MikeSchinkel

问题是"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\' ),
));
请注意,我将继续回答我自己的问题,但除非其他人也拿出一个真正好的答案,否则我不会把它评为最好的。此外,我的直觉告诉我,我可能没有抓住这两个二分法之间的所有区别,因此如果没有,请告诉我们我遗漏了什么。

1 个回复
最合适的回答,由SO网友:MikeSchinkel 整理而成

这个simple answer 层次分类法中的术语可以child terms。但还有什么?

“层次结构”=>;如果指定\'hierarchical\'=>false 您可以获得以下类型的元框,这是WordPress也用于Post标签的元框格式:

Taxonomy Term Metabox in the Post Edit Screen when $hierarchical==false

“层次结构”=>;如果指定\'hierarchical\'=>true 您可以获得以下类型的元框,这是WordPress也用于类别的元框格式:

Taxonomy Term Metabox in the Post Edit Screen when $hierarchical==true

当然,上面的例子也指出了分层分类可能有点复杂,因为在现实生活中,子类别通常适用于许多父类别。即使是这样的高耸;“许多父母”不是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\' ),
    ));
}
希望这有帮助!

结束

相关推荐