在 WP 多站点上跨站点同步 ACF 字段
Sync ACF fields across sites on WP multisite
我一直在寻找一种在 WordPress 多站点上跨站点同步 ACF 字段的方法。有 5 个站点具有各自的内容,但它们都使用相同的 ACF 字段。我宁愿避免在每个站点上手动创建和添加这些新字段。
有解决办法吗?
使用 WP 4.8 和 ACF Pro 5.5.1.4
我之前曾多次考虑过同样的事情,并得出结论,最简单的方法是创建一个包含一组 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 存储库。
除此之外,不幸的是我还没有找到更好的解决方案。
由于您使用的是 ACF Pro,因此您可以使用 "Export/Import" 功能。
- 网络激活高级自定义字段
- 通过自定义字段菜单在主站点上创建字段组。
- 使用自定义字段–>导出,select所有字段组,导出到PHP
- 将 PHP 粘贴到您(子)主题的 functions.php
- 返回并删除主站点中的字段,以免重复。
您现在可以在网络范围内使用 ACF 字段。
只要将字段附加到模板名称而不是特定页面或帖子,就可以毫无问题地同步这些字段。
https://www.advancedcustomfields.com/resources/synchronized-json/
只需快速更改您的 function.php 文件即可。
https://www.advancedcustomfields.com/resources/local-json/
当我完成本地工作并想更新生产主题时,我使用了导出的 PHP 代码方法。
Jesse Pearson 的 Gist 很棒,它会在管理员登录时自动同步所有 acf-json 文件:
https://gist.github.com/jessepearson/a537b2f78556cd705947
在对要点的评论中,您还可以找到对代码的一些改进,请注意这些!
为我节省了大量时间。
我一直在寻找一种在 WordPress 多站点上跨站点同步 ACF 字段的方法。有 5 个站点具有各自的内容,但它们都使用相同的 ACF 字段。我宁愿避免在每个站点上手动创建和添加这些新字段。
有解决办法吗?
使用 WP 4.8 和 ACF Pro 5.5.1.4
我之前曾多次考虑过同样的事情,并得出结论,最简单的方法是创建一个包含一组 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 存储库。
除此之外,不幸的是我还没有找到更好的解决方案。
由于您使用的是 ACF Pro,因此您可以使用 "Export/Import" 功能。
- 网络激活高级自定义字段
- 通过自定义字段菜单在主站点上创建字段组。
- 使用自定义字段–>导出,select所有字段组,导出到PHP
- 将 PHP 粘贴到您(子)主题的 functions.php
- 返回并删除主站点中的字段,以免重复。
您现在可以在网络范围内使用 ACF 字段。
只要将字段附加到模板名称而不是特定页面或帖子,就可以毫无问题地同步这些字段。
https://www.advancedcustomfields.com/resources/synchronized-json/
只需快速更改您的 function.php 文件即可。
https://www.advancedcustomfields.com/resources/local-json/
当我完成本地工作并想更新生产主题时,我使用了导出的 PHP 代码方法。
Jesse Pearson 的 Gist 很棒,它会在管理员登录时自动同步所有 acf-json 文件:
https://gist.github.com/jessepearson/a537b2f78556cd705947
在对要点的评论中,您还可以找到对代码的一些改进,请注意这些!
为我节省了大量时间。