본문으로 바로가기
반응형

워드프레스를 사용하는 경우, 테마 업그레이드에 상관없이 안정적인 커스터마이징을 유지하기 위해서 child 테마 (자식 테마)를 사용하곤 합니다. 그런데 라이트세일에서 멀티사이트 워드프레스를 사용할 때 style.css는 잘 변경되는데 반해서 각종 후크나 필터 등을 위한 functions.php가 변경, 저장이 되지 않는 경우가 있습니다. 이번 글에서는 해당 문제를 해결해 보도록 하겠습니다.

 

 

멀티사이트에서의 functions.php 편집

멀티사이트에서 차일드 테마의 CSS나 functions.php는 각 사이트의 알림판이 아닌 네트워크 관리자 → 테마 편집기를 통해 편집할 수 있습니다.

정상적이라면 functions.php 파일을 수정 후 저장하면 아래와 같이 표시되어야 하는데

 

 

때에 따라서 아래와 같은 경고 문구가 나타나기도 합니다.

 

"치명적인 에러를 점검하기 위해 사이트와 통신할 수 업습니다. 따라서 PHP 변경사항이 원래의 것으로 복구됐습니다. PHP 파일 변경사항을 SFTP와 같은 다른 수단을 통해 업로드해야 합니다."

 

그와중에 오타가...

 

영문 버전인 경우는 다음과 같이 표시됩니다.

"Unable to communicate back with site to check for fatal errors, so the PHP change was reverted. You will need to upload your PHP file change by some other means, such as by using SFTP"

 

 

제 경우는 메인 사이트(primary site)에서 functions.php를 편집하는 경우에 발생하였습니다. (서브 사이트에서는 저장이 정상적으로 잘 되는 것 같습니다)

이 문제는 다음의 두 가지 방법을 이용해서 수정할 수 있습니다.

 

1. 자식 테마를 비활성 상태로 변경

가장 간단한 방법은 테마를 비활성화하는 것입니다. 현재 선택되어 있는 자식 테마를 비활성화한 후 (잠시 다른 테마를 활성화해줍니다) 파일을 편집하고 저장하면 정상적으로 functions.php를 변경, 저장할 수 있습니다. 변경 완료 후에 다시 테마를 활성화하면 됩니다.

 

 

그런데...

잠시 동안이긴 하지만 사이트의 테마가 바뀌어야 한다는 점은 약간은 찝찝합니다. 혹시 왠지 원복이 안될 것 같은 근거 없는 불안감도...

더욱 문제는, 만약 functions.php 파일 수정 후 테스트를 하면서 확인하고, 추가 변경해야 하는 경우에는 매우 번거로운 방법이 될 가능성도 있겠죠?

 

이 경우 아래의 2번의 방법을 이용하시면 됩니다.

 

2. FTP를 통해서 변경 (소유자 변경)

워드프레스 내부에서 변경하지 않고 FTP를 접속해서 에디터를 이용하여 해당 파일을 변경할 수 있습니다. 다만, bitnami로 접속하는 FTP에서 functions.php를 편집 후 저장하면 파일을 변경할 수 없다고 (권한이 없음) 나옵니다. 이는 자식 테마의 폴더 권한을 보면 소유자, 그룹 모두 daemon/daemon으로 되어 있기 때문입니다.

 

이 문제를 해결하기 위해서 폴더의 권한을 변경(소유자를 bitnami로...)해주어야 하는데요, 이는 아래와 같이 변경해줄 수 있습니다.

 

sudo chown -R bitnami:daemon apps/wordpress/htdocs/wp-content/themes/<child 테마 폴더명>

#또는

cd apps/wordpress/htdocs/wp-content/themes/
sudo chown -R bitnami:daemon ./<child 테마 폴더명>

 

이렇게 설정하면 FTP를 통해서 functions.php 파일을 열고, 편집하고, 업데이트할 수 있습니다. 물론 워드프레스 내의 편집 기능에서는 여전히 파일을 변경할 수 없습니다만, functions.php는 자주 변경하는 내용은 아니고 여러모로 외부 에디터를 사용하는 것이 간편하므로 이 방법으로 하는 것이 가장 무난한 것 같습니다.

 

 

반응형