加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 未捕获错误:无法使用WP_Term类型的对象作为数组

发布时间:2020-12-13 21:56:40 所属栏目:PHP教程 来源:网络整理
导读:我有这个问题,因为我更新了我的WordPress,在我的网站上我有一个自定义帖子,其中包含一些自定义类别,类似于: 1)父类:食品| ???孩子:薯条,汉堡包,枫糖浆…… 2)父类别:年份| ???儿童:2016年,2015年,2014年…… 3)父类别:国家| ???孩子:美国,加拿大,西班
我有这个问题,因为我更新了我的WordPress,在我的网站上我有一个自定义帖子,其中包含一些自定义类别,类似于:

1)父类:食品|
???孩子:薯条,汉堡包,枫糖浆……

2)父类别:年份|
???儿童:2016年,2015年,2014年……

3)父类别:国家|
???孩子:美国,加拿大,西班牙……

因此,当我写自定义帖子时,我会在这些类别中选择,只选择(勾选方框)我需要的类别.它会显示出类似的东西:

标题:新配方

内容:我的文字

条款:食物:Mapple Syrup /国家:加拿大/年: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不是一个数组,它是一个Std对象.所以……

$术语[ ‘孩子’]

……实际上……

$条款而─>儿童

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读