Php 在wordpress数据库中使用自定义表

Php 在wordpress数据库中使用自定义表,php,javascript,wordpress,Php,Javascript,Wordpress,几个小时以来,我一直试图通过.ajax post简单地调用wordpress数据库中的一个表,并返回我想要的值,但在返回页面上出现了以下错误:“调用非对象上的成员函数get_results()” 这是我的php文件: <?php global $wpdb; if (isset($_POST['state'])) { $results=$wpdb->get_results("SELECT DISTINCT make FROM cz_cars ORDER BY make A

几个小时以来,我一直试图通过.ajax post简单地调用wordpress数据库中的一个表,并返回我想要的值,但在返回页面上出现了以下错误:“调用非对象上的成员函数get_results()”

这是我的php文件:

<?php 
global $wpdb;


if (isset($_POST['state'])) {
    $results=$wpdb->get_results("SELECT DISTINCT make FROM cz_cars ORDER BY make ASC");
    echo $results[0][0];

exit;
}

?>
当我注释掉php文件中的数据库内容,只回显一个字符串时,这段代码工作得很好。我有一个包含其他内容的php文件,它正在被wordpress识别。不知道这里发生了什么…我以为拥有全球$wpdb;这会成功的


有什么想法吗?

声明某个
global
仅在
global
范围之外有意义


第一个脚本没有看到初始化的
$wpdb
。您需要
包括
WordPress引擎,或者至少包括设置
$wpdb

的部分,声明某个
全局
仅在
全局
范围之外有意义


第一个脚本没有看到初始化的
$wpdb
。您需要
包括
WordPress引擎或至少设置的部分
$wpdb

我不确定问题是否得到了回答,但我相信您需要包括
wp load.php
文件


它应该在wordpress根目录下安装。它将使您能够访问wp globals。

我不确定问题是否已得到回答,但我相信您需要包括
wp load.php
文件


它应该在wordpress根目录下安装。它将使您能够访问wp Global。

您好!谢谢你的回复!有没有一个地方我可以保存我的php文件,这样它就可以访问wp全局数据库?我改变了我的php,所以它在其中,但现在我得到了错误:使用未定义的常量WP_DEBUG“。我不敢相信这是多么令人沮丧!np。不幸的是,WP不是我的专长,但可以说,WP在它的includes中的某个地方创建了
$wpdb
。如果你不准备在创建它的任何地方包含它(CMS可能会对如何允许包含其自身的一部分很挑剔),为了这个脚本,您可以创建自己的一次性DB连接。在这种情况下,我建议您创建自己的DB连接:“>
mysql\u connect
”>
mysql\u select\u DB
”>
mysql\u query
Hi!谢谢回复!有没有一个地方我可以保存我的php文件,这样它就可以访问wp全局数据库?我更改了我的php,这样它就在里面了,但现在我得到了一个错误:使用未定义的常量wp\u DEBUG“。我不敢相信这是多么令人沮丧!np。不幸的是,WP不是我的专长,但我只想说,WP在它的includes中的某个地方创建了
$wpdb
。如果你不准备在创建它的任何地方包含它(CMS可能会挑剔他们如何允许包含自己的部分),您可以为这个脚本创建自己的一次性数据库连接。在这种情况下,我建议您创建自己的数据库连接:“>
mysql\u connect
”>
mysql\u select\u DB
”>
mysql\u query

jQuery(document).ready(function() 
{

        jQuery("#caryear").change(function() 
        { 
            jQuery.ajax(
            { 
                type: "POST", 
                url: "wp-content/themes/storefront/includes/post-yearmakel.php",        
                data: ({ 'state' : jQuery("#caryear").val() }), 
                success: function(msg)
                {
                    jQuery('#carmake').append('' + msg + '');
                }
            });
        });

});