我一直在寻找一种在WordPress多站点上跨站点同步ACF字段的方法。有5个站点具有单独的内容,但它们都使用相同的ACF字段。我宁愿避免在每个站点上手动创建和添加这些新字段。
有解决方法吗?
使用WP 4.8和ACF Pro 5.5.1.4
答案 0 :(得分:9)
由于您使用的是ACF Pro,因此您可以使用“导出/导入”功能。
现在,您可以在整个网络范围内使用ACF字段。
答案 1 :(得分:1)
我之前几次考虑同样的事情并得出结论,最简单的事情就是用一组acf-field-name.php文件创建一个github repo,然后将这些repos作为子模块带到你的每一个项目。如果你将这个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仓库。
其他不幸的是,我还没有找到更好的解决方案。
答案 2 :(得分:0)
只要将字段附加到模板名称而不是特定页面或帖子,您就可以同步这些字段。
https://www.advancedcustomfields.com/resources/synchronized-json/
只需对您的function.php文件进行快速更改。
https://www.advancedcustomfields.com/resources/local-json/
在本地完成工作并想更新生产主题时,我已经使用了导出的PHP代码方法。
答案 3 :(得分:0)
Jesse Pearson有一个很棒的Gist,当管理员登录时,它会自动同步所有acf-json文件:
https://gist.github.com/jessepearson/a537b2f78556cd705947
在要点注释中,您还可以找到一些改进的代码,请注意那些改进!
为我节省了大量时间。