$ wpdb在另一个页面中不起作用

时间:2016-04-12 14:12:55

标签: wordpress wpdb

我创建了简单的插件,它在主页面中工作,但是当我创建一个指向用户的链接转到另一个页面以查看信息时,它会显示致命错误:未捕获错误:调用成员函数get_results()

我的代码是:

<?php

global $wpdb;
$results = $wpdb->get_results("SELECT * FROM wp_customers");
?>
<body>
<table>
    <tr>
        <th>‌ID</th>
        <th>Name</th>
        <th>Family</th>
        <th>Numbers</th>
        <th>Tell</th>
    </tr>

    <?php foreach($results as $results){
    ?>
    <tr>
        <td>
            <?php echo $results->id; ?>
        </td>
        <td>
            <?php echo $results->name; ?>
        </td>
        <td>
            <?php echo $results->family; ?>
        </td>
        <td>
            <?php echo $results->numbers; ?>
        </td>
        <td>
            <?php echo $results->tell; ?>
        </td>
        <?php }?>
    </tr>
</table>

2 个答案:

答案 0 :(得分:1)

您需要检查是否未将数据库前缀设置为&#39; wp _&#39;以外的其他内容。

如果你在数据库中有wp_前缀,那么你必须在自定义页面上包含wp-load文件。

require( '/path/to/wp-load.php' );

答案 1 :(得分:0)

如果它是一个插件,那么你应该将你的代码封装在一个函数中并将这个函数挂钩到wordpress&#34; init&#34;动作,所以在你的插件文件中你应该有这样的东西:

var monthArray = Array<JSON>
var allEventsInDayArray:Array<JSON> = [] // an empty array
        for (_,dayObj) in monthArray
        {
            guard let dayEventsArray = dayObj["events"].array else { break   }

        allEventsInDayArray.appendContentsOf(dayEventsArray)
    }

    print(allEventsInDayArray)
    var allEventsJSON:JSON? = JSON(allEventsInDayArray)
    var EventModelArray:Array<EventModel>? = Mapper<EventModel>().mapArray(allEventsJSON?.object.allValues)