Я пытаюсь получить идентификаторы терминов от имени терминов и не могу понять, почему этот код не работает.
$excludes = ''; if($filtering_excludes) { $exclude_terms = explode(", ", $filtering_excludes); foreach ($exclude_terms as $exclude_term) { $term = get_term_by( 'name', $exclude_term, $filtering_tax ); $exclude_term = $term->term_id; } $excludes= implode(", ", $exclude_terms); }
Когда я делаю var_dump на $ exclude_term, есть термин id, но $ excludes все еще возвращает имя термина.
У меня есть аналогичный код для получения идентификатора категории от имени, и он работает без проблем – это тот код.
$excludes = ''; if($filtering_excludes) { $exclude_cats = explode(", ", $filtering_excludes); foreach ($exclude_cats as &$exclude_cat) { $cat_id = get_category_by_slug($exclude_cat); $exclude_cat = $cat_id->term_id; } $excludes= implode(", ", $exclude_cats); }
Может ли кто-нибудь понять, почему мои $ exlcudes для условий возвращают имя, а не id?
Проверьте имена переменных:
$excludes = ''; if($filtering_excludes) { $exclude_terms = explode(", ", $filtering_excludes); foreach ($exclude_terms as $exclude_term) { $term = get_term_by( 'name', $exclude_term, $filtering_tax ); $exclude_term_array[] = $term->term_id; } $excludes= implode(", ", $exclude_term_array); }