“试图在一个非对象上获取属性”


“Trying to get properties on a non-object” in wordpress

我正在创建wordpress主题。我在一个文本区域内得到这个错误:试图在一个非对象上获得属性。

function add_map_url($post){
        global $wpdb;
        $info = $wpdb->get_var("SELECT * FROM $wpdb->contacts WHERE ID= $post->ID  LIMIT 1");
        $val = !empty($info) ? htmlspecialchars($info->link) : '';
        echo '<textarea name="link" rows="6" cols="30">'.$val.'</textarea>';
    }

似乎导致错误的问题是:$info->link。如果我要修改代码:

function add_map_url($post){
            global $wpdb;
            $info = $wpdb->get_var("SELECT * FROM $wpdb->contacts WHERE ID= $post->ID  LIMIT 1");
            //$val = !empty($info) ? htmlspecialchars($info->link) : '';
            echo '<textarea name="link" rows="6" cols="30">'.$info.'</textarea>';
        }   

它正在工作并给出contacts ID

contacts如下:

contacts
ID     link
我不知道我做错了什么。谢谢你的建议!

查询可能没有返回任何符合给定条件的行,换句话说,该表中不存在行。您可以从mysql命令行运行查询,看看它是否返回任何内容。您可能希望更改对is_object()的empty()调用:

$val = is_object($info) ? htmlspecialchars($info->link) : '';