Php 插件中的$wpdb,管理页面工作,但短代码不工作

Php 插件中的$wpdb,管理页面工作,但短代码不工作,php,wordpress,Php,Wordpress,我正在开发一个插件,我有对后台管理员的查询,它们正在工作,但是当我复制它们并粘贴到一个函数中创建一个短代码时,查询就不再工作了 我这里有一个工作代码,如下所示: function test(){ include ($_SERVER["DOCUMENT_ROOT"]."/test.php"); } 当我把同样的代码放在这里,像这样的代码就不起作用了: function test_shortcode(){ include ($_SERVER["DOCUMENT_ROOT"]."/tes

我正在开发一个插件,我有对后台管理员的查询,它们正在工作,但是当我复制它们并粘贴到一个函数中创建一个短代码时,查询就不再工作了

我这里有一个工作代码,如下所示:

function test(){
   include ($_SERVER["DOCUMENT_ROOT"]."/test.php");
}
当我把同样的代码放在这里,像这样的代码就不起作用了:

function test_shortcode(){
   include ($_SERVER["DOCUMENT_ROOT"]."/test_shortcode.php");
}
add_shortcode( 'test_shortcode', 'test_shortcode' );
我将感谢任何建议,真的我不明白为什么不工作。如果我使用mysql,那么connect在两个函数中都起作用,但是当我使用WordPress函数时,$wpdb只在第一个函数中起作用,而不在具有短代码的函数中起作用

两个文件中相同的我的循环:

    global $wpdb;
    $TABLE_NAME       = $wpdb->prefix . "table_name";
    $RESULT = $wpdb->get_results( "SELECT * FROM $TABLE_NAME");
    foreach($RESULT as $RAW){
        echo $RAW->il_date
    }

因此,问题在于这两个文件之间的差异。这两个文件有什么不同,你能分享吗?两个文件都包含循环,请看更新后的问题,在第一个函数中有效,但在第二个函数中无效,短代码@HammersteinSometimes我发现$wpdb->prefix不起作用。我无法解释它,似乎是随机的。在我的例子中,我检查了$wpdb->前缀并正常工作,似乎查询get_结果像undefined@dwhite.me。您是如何验证$wpdb不工作的?这里只是一个猜测,但是一个短代码应该有一个$atts参数,以便函数与之匹配。