在WP多站点上的站点之间同步ACF字段

时间:2017-07-18 06:55:58

标签: wordpress advanced-custom-fields multisite

我一直在寻找一种在WordPress多站点上跨站点同步ACF字段的方法。有5个站点具有单独的内容,但它们都使用相同的ACF字段。我宁愿避免在每个站点上手动创建和添加这些新字段。

有解决方法吗?

使用WP 4.8和ACF Pro 5.5.1.4

4 个答案:

答案 0 :(得分:9)

由于您使用的是ACF Pro,因此您可以使用“导出/导入”功能。

  1. 网络激活高级自定义字段
  2. 通过自定义字段菜单在主站点上创建字段组。
  3. 使用自定义字段 - >导出,选择所有字段组,导出到PHP
  4. 将PHP粘贴到(子)主题的functions.php
  5. 返回并删除主站点中的字段,以便没有重复项。
  6. 现在,您可以在整个网络范围内使用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

在要点注释中,您还可以找到一些改进的代码,请注意那些改进!

为我节省了大量时间。