在 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" 功能。

  1. 网络激活高级自定义字段
  2. 通过自定义字段菜单在主站点上创建字段组。
  3. 使用自定义字段–>导出,select所有字段组,导出到PHP
  4. 将 PHP 粘贴到您(子)主题的 functions.php
  5. 返回并删除主站点中的字段,以免重复。

您现在可以在网络范围内使用 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

在对要点的评论中,您还可以找到对代码的一些改进,请注意这些!

为我节省了大量时间。