Почему get_term () требует таксономии? Являются ли term_ids уникальными?

Связанный с этим вопрос WPSE задает вопрос о том, как получить этот термин, указав только идентификатор, без указания таксономии. Мой вопрос более философский. Как правило, материал в ядре WP есть по какой-то причине. Я пытаюсь понять, почему term_id не может быть основным ключом для этого термина – зачем нам таксономия? Может ли одна запись термина быть членом нескольких таксономий? Это, конечно же, не поддерживается API. Есть ли вариант использования, где это может быть желательно?

Или является обязательным параметром $taxonomy в get_term() рудиментарным хвостом из более раннего воплощения структуры базы данных?

Solutions Collecting From Web of "Почему get_term () требует таксономии? Являются ли term_ids уникальными?"

Я зарегистрировал билет против этого с помощью trac: http://core.trac.wordpress.org/ticket/20536

Тем не менее, оказывается, что на данный момент это необходимо, поскольку WordPress в настоящее время (так как 2.x) имеет ошибку, которая связывает два члена с тем же именем с одним и тем же term_id! Таким образом, возможно (хотя и неверно), что один термин связан с более чем одной таксономией. См. Эту ошибку: http://core.trac.wordpress.org/ticket/5809

Это довольно широкий охват, поэтому внедрение исправления необходимо будет тщательно протестировать. Я постараюсь не забывать обновлять этот вопрос, если есть какие-то события.

зачем нам таксономия? Может ли одна запись термина быть членом нескольких таксономий?

№ Термины имеют слизни для поддержки архивов терминов. И наличие слизней два раза вызывает много минеток или «wontfix» в некоторых сценариях постоянной ссылки.

Есть ли вариант использования, где это может быть желательно?

Да. Представьте, что у вас есть термины, например, size и три таксономии, называемые length , width и height (вы также можете подумать о цветах). Но это не поддерживается по причинам, описанным выше.

Как правило, материал в ядре WP есть по какой-то причине. Я пытаюсь понять, почему term_id не может быть основным ключом для этого термина – зачем нам таксономия?

От взгляда на таблицу и запуска EXPLAIN , term_id является первичным ключом. Я предполагаю, что в более крупных системах может быть быстрее запрашивать только таксономические термины с использованием (медленного) соединения, чем запрашивать все, сортировать их и фильтровать то, что вам нужно.