как получить термин по тому, какой термин возвращать, когда один и тот же термин дважды появляется в иерархической таксономии?
Это из кодекса.
<?php get_term_by( $field, $value, $taxonomy, $output, $filter ) ?>
Предположим, что у меня есть система таксономии следующим образом;
Таксономия: "здоровая пища" , и это иерархическая таксономия, и ваша иерархия выглядит именно так;
healthy foods
fruits
red ones
green ones
veggies
red ones
green ones
И вы используете функцию get_term_by
следующим образом;
Get_term_by ("имя", "красные", "здоровые продукты")
Вы получаете овощи или фрукты?
2 answers
get_term_by()
просто возвращает первый соответствующий термин, "первый", означающий некоторый внутренний порядок в MySQL.
Если в вашем случае имеет значение наличие нескольких терминов с одинаковым именем, не полагайтесь только на get_term_by()
.
Вы получаете первое, к чему обращается WP в запросе к базе данных. Чтобы получить оба термина, которые соответствуют, используйте:
get_terms( [
'taxonomy'=>'healthy foods',
'name'=>'red ones',
'hide_empty' => 0 ] )
См.: https://developer.wordpress.org/reference/functions/get_terms/