在SQL查询中使用$ _GET的Wordpress

时间:2014-05-12 12:12:19

标签: php sql wordpress get wpdb

我正在尝试运行" sql查询"需要一个帖子结果。我一直收到这个错误:

Call to a member function get_results() on a non-object in ../includes/functions.php on line 43

这是我的代码:

if (isset($_GET['slug'])){
    function get_slug() {
        $slug = 'home';
        return $slug;
    }
} else {
    function get_slug() {
        $sql = "SELECT slug FROM wp_content WHERE slug='".$_GET['slug']."'";
        while ($result = $wpdb->get_results($sql)) {
            $slug = $result['slug'];
            return $slug;
        }
    }   
}

我认为问题出在$_GET。我已经尝试了" wordpress功能"相反,get_query_var('slug')仍会出现相同的错误。

2 个答案:

答案 0 :(得分:1)

这是修改后的代码。我希望它能奏效。如果没有让我知道。

if (isset($_GET['slug'])){
    function get_slug() {
        $slug = 'home';
        return $slug;
    }
} else {
    function get_slug() {
        global $wpdb;
        $sql = "SELECT slug FROM wp_content WHERE slug='".$_GET['slug']."'";
        while ($result = $wpdb->get_results($sql)) {
            $slug = $result['slug'];
            return $slug;
        }
    }   
}

答案 1 :(得分:0)

因为,$wpdb;无法从您的函数内部访问。

如果您将语言构造global添加到$wpdb,您将获得此对象。

PHP Global Scope