Wpdb->GET_ROW()/GET_RESULTS-是否可以返回我自己的类的对象实例?

时间:2013-06-12 作者:Kyriakos Ktorides

是否可以使wpdb->get\\u row返回我自己的自定义类的对象,而不是stdClass?

2 个回复
SO网友:ndm

看起来不可能,至少看起来没有一种优雅的方式。get_row() 调用query(), 其中使用mysql_fetch_object() 使用单个参数(即无法将任何内容传递给其class_name 参数

因此,剩下的唯一选择是延长wpdb 类,实现自定义代码,以便它可以返回自定义类,然后在全局$wpdb WordPress调用前的变量require_wp_db(). 但如果你问我的话,那将是一个非常丑陋的黑客行为。

当然,您始终可以手动创建自定义类的实例,并从检索的stdClass 实例,就像WordPress所做的那样:

http://core.trac.wordpress.org/browser/trunk/wp-includes/post.php#L605

public function __construct( $post ) {
    foreach ( get_object_vars( $post ) as $key => $value )
        $this->$key = $value;
}

SO网友:s_ha_dum

它的文档很差,但您可以通过添加一个;“加入”;已命名db.php 在内容目录中。您当然可以让它以这种方式返回您想要的任何对象,但它仍然需要与WordPress期望的内容兼容,否则就会出现问题。

参考文献

http://hakre.wordpress.com/2010/05/01/must-use-and-drop-ins-plugins/

下面是一个包含这样一个文件的插件:http://plugins.trac.wordpress.org/browser/wordpress-database-abstraction/trunk/wp-db-abstraction/db.php

结束

相关推荐

自定义$wpdb返回基于时间的意外结果

我正在使用$wpdb类进行自定义SQL查询,但得到的结果很奇怪。基本上这就是我的SQL查询应该做的只有在过去7天内发布的帖子类型“question”的标题具有“question\\u tag”分类,才可检索这些标题。问题是数字2。查询似乎返回的问题日期晚于7天。为了说明这一点,我还检索了post\\u日期。正如您在下面的结果集中所看到的。题为“lkddfs”的问题已经提出7天多了。帮助function rs_send_email_to_interested_users() { global