将自定义帖子类型保存到外部数据库

时间:2017-02-24 作者:Arinthros

我正在使用自定义帖子类型为一个小型网络创建一个广告门户。为了防止WordPress数据库损坏或未经授权访问用户信息,我需要在创建和更新广告帖子时,通过将自定义帖子类型数据复制到外部数据库,将数据与广告应用程序分离。我正在使用save_post 钩子来处理函数应该何时运行,以及wp_insert_post() 将所有post数据推入数据库。我想做的是,默认情况下,帖子将保存在WordPress数据库中,并使用我的插件功能保存到外部数据库。

我搞不清楚的问题是怎么说wp_insert_post() 使用外部数据库而不是global $wpdb 它默认使用的变量,如WP代码参考中所述。

如何使用自定义数据库wp_insert_post? 还是有更好的方法?

我的函数,基于WordPress codex和堆栈交换示例:

// Function to push data on update
function my_data_push ($post_id) {
    // Check for custom post type
    if (get_post_type($post_id) == \'ads\'):
        // Set up database connection to external ads storage database
        $push_to_db = new wpdb(\'username\',\'password\',\'database\',\'host\');
        // Insert post data in external database
            wp_insert_post($post_id, $wp_error = true);
    endif;
}
// Add function to post save hook
add_action(\'save_post\', \'my_data_push\');

2 个回复
SO网友:Robin Olsen

我已经寻找这个问题的答案一个多月了-我认为wordpress对于任何有安全外部DB的网站,或者对于任何不想在wordpress主数据库中存储客户数据的人来说都不是很好,这很奇怪,因为这似乎是一个很有价值的功能。

无论如何,我在研究过程中遇到了这段代码,这可能会对您有所帮助-它是外部DB的全局变量。。。根据作者的说法,它的可用性与使用$wpdb全局变量的方式相同。

如果你想了解作者的全部简介,请点击此处https://bavotasan.com/2011/access-another-database-in-wordpress/

代码是:$newdb=newwpdb($DB\\u USER,$DB\\u PASSWORD,$DB\\u NAME,$DB\\u HOST)$newdb->show\\u errors();

希望它对你有用。。。

SO网友:TMA

为此,您需要修改核心wordpress文件,其中写入了函数代码。

您也可以从codex中获得Wordpress函数的位置。

相关推荐

如何同时使用wpdb导出和导入?

当我使用WP-CLI 我对wp db export和wp db import命令有一些问题。我的桌面上有一个本地站点,我想迁移到我的笔记本电脑上,这样我就可以使用它了。因此,我在桌面上,导航到适当的目录并键入wp db export. 成功创建文件:ccv3-2018-07-12-4e523fb.sql这是我不明白的部分。我将它在桌面上创建的SQL文件复制粘贴到本地网站所在的笔记本电脑目录。I类型wp db import ccv3-2018-07-12-4e523fb.sql --authors=skip