source

WP 멀티사이트 사이트 간에 ACF 필드 동기화

bestscript 2023. 2. 16. 22:01

WP 멀티사이트 사이트 간에 ACF 필드 동기화

WordPress 멀티 사이트의 사이트 간에 ACF 필드를 동기화하는 방법을 찾고 있습니다.개개의 컨텐츠를 가지는 사이트는 5개 있습니다만, 모두 같은 ACF 필드를 사용합니다.각 사이트에서 이러한 새 필드를 수동으로 만들고 추가할 필요가 없습니다.

회피책이 있나요?

WP 4.8 및 ACF Pro 5.5.1.4 사용

ACF Pro 를 사용하고 있기 때문에, 「내보내기/가져오기」기능을 사용할 수 있습니다.

  1. 네트워크 활성화 고급 사용자 지정 필드
  2. 사용자 정의 필드 메뉴를 통해 주 사이트에 필드 그룹을 만듭니다.
  3. 커스텀 필드 사용–> 내보내기, 모든 필드 그룹 선택, PHP로 내보내기
  4. PHP를 (자녀) 테마의 함수에 붙여넣습니다.php
  5. 돌아가서 중복되지 않도록 메인 사이트의 필드를 폐기합니다.

이것으로 네트워크 전체에서 ACF 필드를 사용할 수 있게 되었습니다.

이전에도 몇 번인가 같은 생각을 하고 있었습니다만, 가장 쉬운 것은 acf-field-name 세트의 github repo를 작성하는 것이라고 하는 결론에 도달했습니다.php 파일 및 그 저장소를 각 프로젝트에 서브모듈로 가져옵니다.이 php 파일을 테마 폴더 내의 acf 폴더에 저장하고 함수 내에서 함수를 사용하는 경우.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-json 파일을 자동으로 동기화하는 Jesse Pearson의 Gist가 있습니다.

https://gist.github.com/jessepearson/a537b2f78556cd705947

GIST의 코멘트에서는, 코드의 개선점을 몇개인가 발견할 수 있습니다.주의하세요!

덕분에 시간이 많이 절약됐지

특정 페이지나 게시물이 아닌 템플릿 이름에 필드를 첨부하면 문제 없이 동기화할 수 있습니다.

https://www.advancedcustomfields.com/resources/synchronized-json/

기능을 빠르게 변경하기만 하면 됩니다.php 파일.

https://www.advancedcustomfields.com/resources/local-json/

로컬에서 작업을 마치고 프로덕션 테마를 업데이트하고 싶을 때 내보낸 PHP 코드 방식을 사용했습니다.

언급URL : https://stackoverflow.com/questions/45159628/sync-acf-fields-across-sites-on-wp-multisite