试图获取非对象的属性(WordPress类别)

时间:2017-09-14 20:10:23

标签: php wordpress wordpress-theming

我正在尝试修复PHP错误,以便为WordPress类别添加额外的字段。但它给出了这个错误:

  

尝试获取非对象的属性   第7行的D:\ MAMP \ htdocs \ client \ wp-content \ themes \ custom_t \ extra_category_fields.php


这是我的代码:

$t_id = $tag->term_id;

错误在第7行,其中包含以下代码:(lldb) p unsafeBitCast(0x00006080000e2280, to: UIViewController.self)

如果有人给我解决这个php错误,我将不胜感激。

P.S。我不认为自己是PHP的专家。我已经查看了这篇文章:Reference - What does this error mean in PHP但我仍然无法理解直接解决方案。

谢谢!

2 个答案:

答案 0 :(得分:0)

似乎变量$ tag不是object类型,所以你不能使用 - >操作员就可以了。

这是一种查看$ tag的简单方法。

回波(的var_dump($标签))

https://www.w3resource.com/php/function-reference/var_dump.php

解释它的作用。它应该将该变量的所有信息转储到您的屏幕上。

答案 1 :(得分:0)

似乎“category_add_form_fields”钩子会为您提供一个字符串参数,即您的类别的slug。请参阅:https://github.com/WordPress/WordPress/blob/4981452aba3a9804dd5a4f869e124e38853cb7cc/wp-admin/edit-tags.php#L473

“edit_category_form_fields”钩子会返回您想要的对象。此钩子似乎也被弃用了,建议使用“category_edit_form_fields”,这对第一个参数来说就是一个对象。

所以你需要检查$ tag是一个对象还是这样的字符串:

if( ! is_object( $tag ) ){

    $tag = get_category_by_slug( $tag );

}

希望这有帮助。