it-swarm-ko.tech

계층 적 및 비 계층 적 분류의 차이점은 무엇입니까?

문제는 "계층 적 및 비 계층 적 분류의 차이점은 무엇입니까?" 이 질문은 정말 처음에 나를 곤란하게 만들었습니다. 그래서 나는 다른 사람들이 그 사이트를 서핑하면서 그 차이점을 찾는 것이 좋을 것이라고 생각했습니다.

특히 질문은 register_taxonomy() 함수에 전달 된 hierarchical 인수를 나타냅니다. 더 구체적으로, 이것의 차이점은 무엇입니까?

'hierarchical'=> false

register_taxonomy('movie-genre', 'movie', array(
  'hierarchical'    => false,
  'label'           => 'Genre',
  'query_var'       => 'movie-genre',
  'rewrite'         => array('slug' => 'genres' ),
));

이?

'hierarchical'=> true

register_taxonomy('movie-genre', 'movie', array(
  'hierarchical'    => true,
  'label'           => 'Genre',
  'query_var'       => 'movie-genre',
  'rewrite'         => array('slug' => 'genres' ),
));

참고 나는 앞으로 나아가서 내 자신의 질문에 대답 할 것이지만, 아무도 다른 사람이 정말 좋은 대답을하지 않는 한 그것을 최고로 표시하지 않을 것이다. 또한 내 직감은 두 가지 이분법 사이의 모든 구별을 포착하지 못했을 수도 있다고 말합니다. 그러지 않으면 내가 무엇을 놓쳤는 지 알려주십시오.

33
MikeSchinkel

단순 답변은 계층 적 분류 체계의 항에 자식를 가질 수 있다는 것입니다. 그러나 다른 무엇?

'계층 적'=> 거짓

'hierarchical'=>false를 지정하면 WordPress 메타 박스 형식 인 다음 유형의 메타 박스가 포스트 태그 에 사용됩니다.

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

'hierarchical'=> true

그러나 'hierarchical'=>true를 지정하면 WordPress 메타 박스 형식 인 다음 유형의 메타 박스가 카테고리 에 사용됩니다.

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

물론 위의 예는 실제 하위 카테고리가 종종 많은 상위 카테고리에 적용되기 때문에 계층 적 분류가 혼합 백이 될 수있는 위치를 지적합니다. 너무 많은 "많은 부모"가 WordPress에서 계층 적 분류법이 작동하는 방식은 아니지만 어떤 항목을 완벽하게 분류하는 IMO는 거의 불가능합니다 에 관계없이 WordPress가 작동합니다. 따라서 Caveat Emptor!

맞춤 분류법 등록 또는 "왜 저장되지 않습니까?"

맞춤 분류법을 시도하는 초보자 인 경우 ( 또는 관심이없는 숙련 된 개발자라면이 글을 쓸 때 나에게 일어난 것처럼 질문과 직접 ​​관련이 없습니다! ) 질문에 표시된 코드와 같은 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' ),
    ));
}

이것이 도움이되기를 바랍니다!

41
MikeSchinkel