【问题标题】:How do I get Advanced Custom Fields data, from another WordPress of mine?如何从我的另一个 WordPress 获取高级自定义字段数据?
【发布时间】:2019-06-17 11:22:21
【问题描述】:

我创建了一个网站,在其中放置了该公司的一些服务。现在我正在为他们创建一个新的,我需要再次展示这些服务。

我是使用高级自定义字段和自定义模板完成的,所以我的问题是:

我现在可以连接到第一个网页的数据库,检索自定义字段数据并将其显示给第二个网页吗?

问题是它必须同时更新,所以我需要为两者使用相同的数据库。

我发现我可以连接到外部数据库:

$mydb = new wpdb( 'username', 'password', 'database', 'localhost' );
$rows = $mydb->get_results( "select Name from my_table" );

但是我查看了第一个数据库,但没有找到应该将这些信息保存在哪里。这些信息保存在哪里?

有什么想法吗?

【问题讨论】:

    标签: mysql database wordpress advanced-custom-fields


    【解决方案1】:

    来自 ACF 的数据被保存到相应帖子类型的元表中,例如 wp_postmeta。在那里,使用您的字段名称查找 meta_key。应该总是有两个:一个以下划线开头,它是对字段定义的引用,另一个没有下划线,包含相应帖子 ID 的实际数据。

    由于您没有详细说明您需要多少信息以及如何显示数据,您需要从那里获取信息。但: 如果您需要检索和显示的不仅仅是字段信息,那么事情将很快变得复杂(并且具有潜在危险)。确保您创建一个只读帐户以连接到其他数据库。此外,如果原始数据库位于另一台主机上,您可能会遇到一些关于防火墙和 SQL 配置的问题(仅限本地主机配置等)。 虽然基本上任何事情在技术上都是可能的,例如通过使用视图、数据库同步等“链接”到另一个 DB,我强烈建议保持简单,并考虑将所需信息的简单计划导出 + 导入到单独的 DB 中并从那里获取。

    【讨论】:

    • 这只是检索 acf 数据,这样就可以了。我必须允许 CORS 并尝试一下。我期待一个 acf 共享数据插件或类似的东西,但我必须尝试找出答案。
    【解决方案2】:

    要连接到远程数据库,远程服务器应该对外部连接开放,几乎所有主机都不允许这样做。

    最好的办法是使用WP REST API 创建一个可以从外部站点使用的service

    【讨论】:

    • 我想 API 会很棒而且是正确的事情,但是我没有时间去做,我必须找到一个最快的解决方案。谢谢
    • 我知道老派的方式,在源站点中创建 ajax 操作函数,然后使用 php add_action('wp_ajax_get_services', 'get_services_init') 从第二个站点执行 get_file; add_action('wp_ajax_nopriv_get_services', 'get_services_init'); function get_services_init() { //获取需要的东西,推送到数组,编码为 JSON,echo 和 die(); } 在第二个站点中获取 json file_get_contents('services-source-site/admin-ajax.php?action=get_services');
    猜你喜欢
    • 2016-05-31
    • 2014-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-13
    • 2012-08-10
    • 1970-01-01
    • 2017-08-28
    相关资源
    最近更新 更多