WordPress get_results()调用出错

时间:2016-03-02 18:14:15

标签: jquery wordpress

我在脚本中有一个jQuery .load():

$('#category2').load("/wp-content/themes/mydomain/categories.php",
                            { category_number : 2,   // category to get
                              category_1 : category_1,
                              category_2 : category_2,
                              category_3 : category_3,
                              category_4 : category_4,
                              category_5 : category_5,
                              category_6 : category_6,
                              category_7 : category_7
                            },
                            function(responseTxt, textStatus, xhr) {
                                console.log("responseTxt=" + responseTxt + ", textStatus=" + textStatus + ", xhr->status=" + xhr.statusText);
                            })

在.load()的categories.php处理程序中,我目前有:

<?php 
ini_set('display_errors', 1);
error_reporting(E_ALL & ~E_NOTICE);


global $wpdb;
$query=("SELECT Cat2
         FROM wp_categories
         WHERE Cat3 IS NULL AND Cat4 IS NULL AND Cat5 IS NULL AND Cat6 IS NULL");
$dropdown = $wpdb->get_results($query, OBJECT);
print_r ($dropdown);
?>

但是我从上面的$ dropdown =行收到错误:“在非对象上调用成员函数get_results()。”

有谁看到我做错了什么?

1 个答案:

答案 0 :(得分:1)

您直接调用/wp-content/themes/mydomain/categories.php文件,而不是通过WordPress传递它。这意味着$wpdb对象无法使用。

您可以直接加载categories.php文件并输入:

来确认
global $wpdb;
print_r($wpdb);

您将无法获得WordPress数据库对象(除非您直接在categories.php中包含所需文件。

您应该使用内置的WordPress Ajax functions来处理Ajax请求。

有很多教程可以解释如何在WordPress中使用Ajax: