【发布时间】:2017-12-22 21:35:11
【问题描述】:
我一直在寻找一种在 WordPress 多站点上跨站点同步 ACF 字段的方法。有 5 个站点具有单独的内容,但它们都使用相同的 ACF 字段。我宁愿避免在每个站点上手动创建和添加这些新字段。
有解决办法吗?
使用 WP 4.8 和 ACF Pro 5.5.1.4
【问题讨论】:
标签: wordpress advanced-custom-fields multisite
我一直在寻找一种在 WordPress 多站点上跨站点同步 ACF 字段的方法。有 5 个站点具有单独的内容,但它们都使用相同的 ACF 字段。我宁愿避免在每个站点上手动创建和添加这些新字段。
有解决办法吗?
使用 WP 4.8 和 ACF Pro 5.5.1.4
【问题讨论】:
标签: wordpress advanced-custom-fields multisite
由于您使用的是 ACF Pro,您可以使用“导出/导入”功能。
您现在可以在网络范围内使用 ACF 字段。
【讨论】:
我之前曾多次考虑过同样的事情,并得出结论,最简单的方法是使用一组 acf-field-name.php 文件创建一个 github 存储库,然后将这些存储库作为子模块带到您的每个项目。如果您将此 php 文件放在主题文件夹中的 acf 文件夹中,并像这样使用 functions.php 中的函数
function getAcfFileNames()
{
return array(
'acf-one',
'acf-two',
'acf-three',
);
}
function add_php_acf_field_groups()
{
$fileNames = getAcfFileNames();
foreach ($fileNames as $fileName) {
include_once 'acf/' . $fileName . '.php';
}
}
;
add_action('acf/init', 'add_php_acf_field_groups');
这应该可以正常工作。如果您想在项目中编辑这些 acf.php 文件,您可以使用 -> https://github.com/BeAPI/ACF-PHP-Recovery 在本地恢复 php 文件并更新它。之后只需导出文件并将其提交到您的 ACF 存储库。
不幸的是,我还没有找到更好的解决方案。
【讨论】:
Jesse Pearson 有一个很棒的 Gist,它会在管理员登录时自动同步所有 acf-json 文件:
https://gist.github.com/jessepearson/a537b2f78556cd705947
在 cmets to the gist 中,您还可以找到对代码的一些改进,请注意这些!
为我节省了大量时间。
【讨论】:
只要将字段附加到模板名称而不是特定页面或帖子,就可以同步字段。
https://www.advancedcustomfields.com/resources/synchronized-json/
只需快速更改您的 function.php 文件即可。
https://www.advancedcustomfields.com/resources/local-json/
当我在本地完成工作并想更新生产主题时,我使用了导出的 PHP 代码方法。
【讨论】: