programing

발견되지 않은 오류: WP_Term 형식의 개체를 배열로 사용할 수 없습니다.

elseif 2023. 3. 20. 21:37

발견되지 않은 오류: WP_Term 형식의 개체를 배열로 사용할 수 없습니다.

WordPress를 업데이트한 후 이 문제가 발생했습니다. 제 웹 사이트에는 다음과 같은 사용자 지정 카테고리가 포함된 사용자 지정 게시물이 있습니다.

1) 상위 카테고리:음식 | 어린이 : 감자튀김, 햄버거, 메이플 시럽...

2) 부모 카테고리: 연도 | 자녀: 2016, 2015, 2014...

3) 부모 카테고리: 국가| 자녀: 미국, 캐나다, 스페인...

커스텀 투고를 작성할 때는, 그 카테고리에서 선택하고, 필요한 카테고리를 선택해(체크 박스를 온으로 합니다).그리고 다음과 같은 것을 보여줍니다.

제목 : 새로운 레시피

내용:내 텍스트

조건 : 식품 : 마플 시럽 / 국가 : 캐나다 / 연도 : 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 />";
                                }
                            }

뭐가 잘못됐는지 누가 좀 도와주면 정말 고맙겠어?

시간 내주셔서 감사합니다

$terms_hierarchy는 배열이 아니라 표준 객체입니다.그래서...

$term['자녀']

...실제로...

$term->자녀

언급URL : https://stackoverflow.com/questions/41769716/uncaught-error-cannot-use-object-of-type-wp-term-as-array