如何添加/更改$wpdb Property/var的值?

时间:2011-05-02 作者:Matheus Eduardo

有一个问题:我想添加一个表“linkmeta”来像“posmeta”或“commentmeta”一样工作。。并使用add\\u metadata/update_metadata / 删除\\u元数据!

但是,在此函数中,调用“\\u get\\u meta\\u table()”以验证db中的名称,代码如下:

function _get_meta_table($type) {
    global $wpdb;
    $table_name = $type . \'meta\';
    if ( empty($wpdb->$table_name) )
        return false;
    return $wpdb->$table_name;
}
因此,如果$wpdb中不存在名为“linkmeta”的属性/变量,_get_meta_table 将返回false,然后update_metadata 太不起作用,因为这段代码的开头是:

if ( ! $table = _get_meta_table($meta_type) )
    return false;
但是,如果我可以设置(类)的属性/变量$wpdb 喜欢$wpdb->linkmeta 返回表的正确名称,在本例中(默认)为wp\\u linkmeta,其余的一切都很好!

那么,有没有一种方法可以在运行时更改wpdb?如果我只是把命令:

$wpdb->tables = array_merge($wpdb->tables, array(\'linkmeta\'));
$wpdb->linkmeta = $wpdb->prefix . \'linkmeta\';
在插件初始化时,它会在运行时工作吗_get_meta_table 被称为??!

rgds

1 个回复
SO网友:Rarst

是的,只需声明全局$wpdb 足够早地修改它的字段。食品法典文件add_metadata() 准确地说:

请注意,您还必须使用$wpdb对象注册该表才能使其工作。只需将以下内容添加到WordPress的init hook中(或者至少在您尝试使用任何自定义元数据函数之前)。

global $wpdb;
$wpdb->termmeta = $wpdb->prefix.\'termmeta\';

结束

相关推荐

Can't get permalinks working!

我无法让WordPress pretty permalinks在我的Fedora LAMP服务器上工作。如果我设置它们并单击页面/帖子链接,我会得到一个“哎呀!此链接似乎已断开。“”这个。htaccess文件可写且正在更新,mod\\u重写模块似乎已加载到我的httpd中。conf(见下文)我的apache日志中的错误只是说“找不到文档”</我已经筋疲力尽了!这是httpd.conf:### Section 1: Global Environment # start the rew