我一直在为我的网站编写一些自定义插件,我想知道如何正确地与$wpdb交互。我的插件使用全局$wpdb连接执行一些查询。我注意到一个$wpdb->;关闭();方法已添加到WordPress,以关闭数据库连接对象。
我的问题是:插件应该在执行查询后关闭连接吗?
我被搜索到一些著名插件的文件夹(如rank math、Yoast)。他们经常使用$wpdb,但我找不到$wpdb->;在其代码上关闭()。我的意思是,在函数结束时,它们不会关闭查询。
例如,我从上周开始就一直在编写一个统计帖子的函数
function get_posts_count_from_last_week($post_type = \'post\')
{
global $wpdb;
$numposts = $wpdb->get_var($wpdb->prepare("SELECT COUNT(ID) " . "FROM " . $wpdb->posts . " WHERE post_status=\'publish\' AND post_type= %s AND post_date> %s", $post_type, date(\'Y-m-d H:i:s\', strtotime(\'-168 hours\'))));
return $numposts;
}
我得到了很多
“WordPress database error Commands out of sync; you can’t run this command now for query SELECT”
所以我必须
$wpdb->close();
在回来之前和之后我没有
Commands out of sync
完全
我很困惑,为什么我必须关闭连接,而其他插件却不这样做!顺便说一下,在我的主题中,我有一些global $wpdb
但是,同样没有$wpdb->close()
用于关闭。