问题是“层次分类法和非层次分类法有什么区别?”这个问题起初确实让我感到难过,所以我认为将其与其他浏览该站点的人进行区分是一个好主意。更具体地说,这之间有什么区别:
'hierarchical'=>假
register_taxonomy('movie-genre', 'movie', array(
  'hierarchical'    => false,
  'label'           => 'Genre',
  'query_var'       => 'movie-genre',
  'rewrite'         => array('slug' => 'genres' ),
));

这又是什么?请注意,我将继续回答我自己的问题,但是除非别人也没有提出很好的答案,否则我不会将其标记为最佳。我的直觉也告诉我,我可能无法捕捉到两个二分法之间的所有区别,因此如果不能,请告诉我们我错过了什么。

评论

您还能解释什么是分层的吗?分类组是否按帖子类型分层?还是将单个分类法归类到分类法组?我只是被“分层”这个词所取代。谢谢。

#1 楼

简单的答案是,层次分类法中的术语可以有子术语。但是还有什么呢?
'hierarchical'=> false
当您指定'hierarchical'=>false时,您会得到以下类型的metabox,这是WordPress也用于帖子标记的metabox格式: >'hierarchical'=> true
但是,当您指定'hierarchical'=>true时,会得到以下类型的metabox,这是WordPress也用于类别的metabox格式:层次分类可能有点麻烦,因为在现实生活中,子类别通常适用于许多父类别。即使如此低落的“许多父母”也不是WordPress中分层分类法的工作原理,但无论WordPress如何工作,IMO几乎不可能对任何事物进行完美分类。因此,请告诫Empor!
关于自定义分类注册,或“为什么不保存?”

虽然与您是否正在尝试自定义分类的新手没有直接关系,一个经验丰富的开发人员,没有像我写这篇文章时那样关注我!)很可能您会尝试将register_taxonomy()像问题中看到的代码一样直接添加到主题的functions.php文件中。糟糕!
如果您确实将代码直接添加到functions.php中,则会显示您的元框,但它不会保存您新添加的字词(在元框的'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' ),
    ));
}

希望这会有所帮助!

评论


分层分类法是否与自定义类别相同?非分级分类法是否与自定义标签一样?

–丹尼尔(Daniel)
2014年6月3日15:11



@ ravensfan55222-不完全是,但是差不多。内置的类别分类系统只是许多潜在的层次分类法之一,而不是与自定义类别相同的“层次分类法”。同样,(发布)标签只是非分层分类法的一个示例。更正确地说,“分层”只是分类法的属性,就像标签如何成为分类法的正义属性或颜色如何是汽车的属性一样。那可能就是您的意思,但我想澄清一下。

– MikeSchinkel
2014年6月7日在3:17