【问题标题】:PHP Notice: Trying to get property of non-object with get_term_metaPHP 注意:尝试使用 get_term_meta 获取非对象的属性
【发布时间】:2017-06-20 18:07:14
【问题描述】:

我在 WordPress 主题中收到“尝试获取非对象的属性”的通知

第 5 行,注意显示以下代码,但一切似乎都正常:

$age = get_term_meta($term->term_id,'age',true);

输出:

if( ! empty($age)) {
echo '<p>'.__('Age','framework').': <span>'.$age.'</span></p>';
}

我在这里做错了什么?如何删除此通知? 谢谢。

【问题讨论】:

  • $term-&gt;term_id 是问题所在。赔率是$termnull
  • 查看$term的内容。可能$term 对象内不存在term_id
  • 它的$term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );

标签: php wordpress term


【解决方案1】:

似乎这条线正在抛出通知:

$age = get_term_meta($term->term_id,'age',true);

您需要先检查是否设置了 $term->term_id:

if( isset($term->term_id) ){
    $age = get_term_meta($term->term_id,'age',true);
}

另外请注意,此通知可能不会显示在 prod 服务器中。

【讨论】:

  • 感谢 Agustin,但问题是另一回事。变量位于侧边栏中,在页面模板中也可见,我刚刚在 if ( is_tax('my_tax') ) { 中得到变量,一切正常,感谢您的回答我也变了!按照您的建议,用 isset 清空,现在更好了。
猜你喜欢
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-22
相关资源
最近更新 更多