как получить термин по тому, какой термин возвращать, когда один и тот же термин дважды появляется в иерархической таксономии?


Это из кодекса.

<?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 ("имя", "красные", "здоровые продукты")

Вы получаете овощи или фрукты?

Author: Average Joe, 2012-04-07

2 answers

get_term_by() просто возвращает первый соответствующий термин, "первый", означающий некоторый внутренний порядок в MySQL.

Если в вашем случае имеет значение наличие нескольких терминов с одинаковым именем, не полагайтесь только на get_term_by().

 2
Author: scribu, 2012-04-07 17:11:19

Вы получаете первое, к чему обращается WP в запросе к базе данных. Чтобы получить оба термина, которые соответствуют, используйте:

get_terms( [ 'taxonomy'=>'healthy foods', 'name'=>'red ones', 'hide_empty' => 0 ] )

См.: https://developer.wordpress.org/reference/functions/get_terms/

 0
Author: John Dorner, 2020-02-20 22:37:00