2017-01-20 4 views
1

Я имел этот вопрос, так как я обновил свой WordPress, на моем сайте у меня есть собственный пост, который содержит некоторые пользовательские категории, что-то вроде этого:Uncaught Ошибка: Не удается использовать объект типа WP_Term как массив

1) Parent категория: Продукты питания | Детский: Fries, гамбургер, кленовый сироп ...

2) Родитель категории: Год | Детский: 2016, 2015, 2014 ...

3) Родитель категории: Страна | Детский: США, Канада, Испания ...

Так что, когда я сочинительство мой собственный пост, я бы выбрал в рамках этих категорий и просто выбрать (щекотать коробку) категорию, которая мне нужна. И это было показано, что-то вроде этого:

Название: Новый рецепт

Содержание: Мой текст

Условия: питание: Мапл Сироп/Страна: Канада/Год: 2014

Но теперь термины d oesn't показать на всех, и я получаю сообщение об ошибке: Невозможно использовать объект типа 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 />"; 
           } 
          } 

Я буду очень благодарен, если кто-то может помочь выяснить, что пошло не так?

Спасибо за ваше время

+0

К сожалению переспросить, но до сих пор я не мог «Исправить проблему самостоятельно ... На данный момент мое временное решение состоит в том, чтобы удалить строку, но потом большинство моих категорий исчезнет ... Поймите некоторые советы! – cbtr

ответ

1

$ terms_hierarchy не является массивом это объект Std. Так что ...

$ Термина [ 'дети']

... фактически будут ...

$ перспективы,> дети

+0

Спасибо, что помогли мне! – cbtr

Смежные вопросы