Php 试图在Wordpress的自定义化身函数中获取非对象通知的属性
下面的自定义化身功能工作正常,但我得到以下通知 “正在尝试获取…中非对象的属性” 通知说问题出在我粘贴在这里的函数的最后一部分——我在代码中标记了它(查找Php 试图在Wordpress的自定义化身函数中获取非对象通知的属性,php,wordpress,Php,Wordpress,下面的自定义化身功能工作正常,但我得到以下通知 “正在尝试获取…中非对象的属性” 通知说问题出在我粘贴在这里的函数的最后一部分——我在代码中标记了它(查找ID; }else if(is_object($id_或_email)){ 如果(!空($id\u或\u email->id)){ $id\u或\u email=$id\u或\u email->id; } 如果(!空($id\u或电子邮件->评论\u作者\u电子邮件)){ $user=get\u user\u by('email'、$id\u或
ID;
}else if(is_object($id_或_email)){
如果(!空($id\u或\u email->id)){
$id\u或\u email=$id\u或\u email->id;
}
如果(!空($id\u或电子邮件->评论\u作者\u电子邮件)){
$user=get\u user\u by('email'、$id\u或\u email->comment\u author\u email);
$id\u或\u email=$user->id;是,因为可能会失败并返回false。此时,您将没有wp user对象。围绕此代码的测试将是:
if ($user = get_user_by('email', $id_or_email->comment_author_email)) {
$id_or_email = $user->ID;
} else {
//Whatever you want to do when this lookup fails
$id_or_email = 0;
}
当你跑的时候
$user = get_user_by('email', $id_or_email->comment_author_email);
在尝试获取下一行的id之前,您应该检查$user
的值。根据,如果找不到用户,则可能为false。$user
不是对象…因此根据定义(在PHP中)它不能包含引用为ID
的属性。$user
设置在哪里?@martin-一切都是可能的,但我无法解决你的参考页面url的问题…我已经搜索了类似的问题,但到目前为止没有找到任何结果。因此我需要帮助。如果有人帮助我,那就太棒了。你是认真的吗告诉我你还不知道如何解决你的问题?对不起,我应该在一开始就直接把这个答案联系起来,而不仅仅是问题可能的重复
$user = get_user_by('email', $id_or_email->comment_author_email);