Різниця між ієрархічними та неієрархічними таксономіями?


34

Питання: "Яка різниця між ієрархічними та неієрархічними таксономіями?" Це питання насправді спочатку наткнулось на мене, тому я подумав, що було б гарною ідеєю показати різницю іншим, хто займається серфінгом, шукаючи розрізнення.

Зокрема, питання стосується hierarchicalаргументу, переданого register_taxonomy()функції. Більш конкретно, яка різниця між цим:

'ієрархічний' => false

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' ),
));

Зауважте, що я продовжую відповідати на власне запитання, але не визначу його найкращим, якщо ніхто інший теж не підійде з дійсно хорошою відповіддю. Також моє відчуття кишечника говорить мені, що я, можливо, не захопив би будь-яку різницю між двома дихотоміями, тож якщо ні, будь ласка, повідомте про те, що я пропустив.


Чи можете ви також пояснити, що є ієрархічним до чого? Чи ієрархічна таксономічна група щодо типу посади? Або індивідуальна систематика є ієрархічною до групи таксономії? Мене просто відкидає слово, яке я думаю, ієрархічне. Спасибі.
Дейв

Відповіді:


42

Проста відповідь в тому , що умови в ієрархічних таксономії може мати дочірні терміни . Але що ще?

'ієрархічний' => хибний

Коли ви вказуєте a, 'hierarchical'=>falseви отримуєте такий тип метабокса, який є форматом метабокса, який WordPress також використовує для тегів допису :

Таксономія Термін Metabox на екрані редагування публікацій, коли $ hierarchical == false

'ієрархічний' => вірно

Однак, коли ви вказуєте, 'hierarchical'=>trueви отримуєте такий тип метабоксу, який є формою метабокса, який WordPress також використовує для категорій :

Таксономія Термін Metabox на екрані редагування публікацій, коли $ 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' ),
    ));
}

Сподіваюся, це допомагає!


Чи є ієрархічна систематика те саме, що і власна категорія? І чи неієрархічна таксономія - це те саме, що і власний тег?
Даніель

1
@ ravensfan55222 - Не зовсім, але майже. Замість того, щоб "ієрархічна систематика" була такою ж, як власна категорія, вбудована система класифікації категорій - лише одна з багатьох потенційних ієрархічних таксономій. Аналогічно (повідомлення) Теги - лише один приклад неієрархічної систематики. Більш правильно, «ієрархічний» - це лише атрибут таксономії, як, наприклад, тег є справедливим атрибутом таксономії або колір є атрибутом автомобіля. Це могло бути те, що ви мали на увазі, але я хотів уточнити, якщо ні.
MikeSchinkel
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.