У меня возникла эта проблема с тех пор, как я обновил свой WordPress, на моем веб-сайте есть пользовательский пост, который содержит некоторые пользовательские категории, что-то вроде этого:
1) Родительская категория: Еда |
ребенок: Картофель фри, гамбургер, кленовый сироп …
2) Родительская категория: Год |
ребенок: 2016, 2015, 2014 …
3) Родительская категория: Страна |
ребенок: США, Канада, Испания …
Поэтому, когда я пишу свой собственный пост, я бы выбрал в этих категориях и просто выбрал (отметьте галочкой) нужную мне категорию. И это показало бы что-то вроде этого:
заглавие: Новый рецепт
содержание: Мой текст
термины: Еда: Mapple Сироп / Страна: Канада / Год: 2014
Но теперь условия не отображаются вообще, и я получаю это сообщение об ошибке:
Невозможно использовать объект типа WP_Term в качестве массива
Раньше у меня был следующий код PHP, который позволял мне получать родительский объект дочерней категории (и использовал его в качестве префикса), а также позволял мне изменять порядок.
$term_list = wp_get_post_terms($post->ID, 'project_cat', array("fields" => "all"));
$terms_hierarchy = array();
foreach ($term_list as $term_single) {
$parent = $term_single->parent;
if ($parent != 0) {
$terms_hierarchy[$parent][] = get_term($parent)->slug;
$terms_hierarchy[$parent]['children'][$term_single->term_id] = $term_single->name;
} else {
$terms_hierarchy[$parent] = $term_single;
}
}
//PHP indicated this line:
foreach ($terms_hierarchy as $key => $term) {
echo "<span>$term[0]: </span>";
if (!empty($term['children'])) {
$s_children = '';
foreach ($term['children'] as $key => $child) {
if ($term[0] == 'client') {
$tax_meta = get_term_meta($key);
if(!empty($tax_meta['external_url'][0])){
$s_children .= "<a target='_blank' href='{$tax_meta['external_url'][0]}'>$child</a>, ";
}
else {
$s_children .= $child . ', ';
}
}
else {
$s_children .= $child . ', ';
}
}
echo rtrim($s_children, ', ') . "<br />";
}
}
Я буду очень признателен, если кто-то может помочь выяснить, что пошло не так?
Спасибо за ваше время
$ term_hierarchy — это не массив, это Std Object. Так …
$ Термин [ ‘дети’]
… будет на самом деле …
$> Дети перспективы,
Других решений пока нет …