워드프레스에서 테마 파일을 수정하거나 함수 파일에 코드를 추가해야 하는 경우 차일드 테마(자식 테마)를 만들어 작업해야 추후에 테마가 업데이트되더라도 수정 사항이나 추가 사항이 사라지지 않습니다. 간혹 차일드 테마를 만들어서 작업해도 함수 파일에 추가한 코드가 작동하지 않는다고 하는 분들이 계십니다.
워드프레스 차일드 테마의 함수 파일에 코드를 넣어도 코드가 작동하지 않는다면 참고해보세요.
워드프레스 차일드 테마가 작동하지 않는 경우 확인 사항
워드프레스에서 후크(액션/필터)를 사용하면 커스텀 작업이 편리할 수 있습니다. 예를 들어, 다음과 같은 wp_footer 액션을 사용하면 </body> 바로 앞에 원하는 요소를 추가할 수 있습니다.
function your_function() {
echo '<p>This is inserted at the bottom</p>';
}
add_action( 'wp_footer', 'your_function', 100 );
워드프레스 관련 서적이나 사이트에서는 위와 같은 코드만 제시하고 별다른 설명이 없을 수 있습니다. 위와 같은 코드는 어디에 넣어야 할까요? 여러 가지 방법이 있지만 보통 테마의 함수 파일에 추가하면 됩니다.
앞서 설명했듯이 원래 테마(부모 테마) 내의 함수 파일에 코드를 삽입하면 추후 테마가 업데이트될 경우에 추가한 코드가 사라지게 됩니다. 그러므로 차일드 테마(자식 테마 또는 하위 테마라고도 함)를 만들어 작업해야 합니다.
하지만 간혹 자식 테마 내의 함수 파일에 코드를 넣어도 작동하지 않는다고 하시는 분이 계십니다. 오늘 어떤 분이 Newspaper 테마의 차일드 테마에 코드를 넣었지만 코드가 작동하지 않는다고 하여 확인해보니 뉴스페이퍼 테마의 차일드 테마를 설치만 해놓고 부모 테마가 활성화된 상태였습니다.
자식 테마를 설치한 후에 자식 테마를 활성화해야 자식 테마 내에 추가한 코드가 원하는 대로 작동하게 됩니다.
만약 이 문제로 추가한 코드가 작동하지 않는다면 테마 디자인 > 테마에서 자식 테마를 업로드하여 설치한 후에 활성화 버튼을 눌러 자식 테마(Child Theme)를 활성화하면 문제가 해결될 것입니다.
* '차일드 테마를 만들어 작업하세요'라는 말에는 '차일드 테마를 만들어서 설치한 다음 활성화한 후에 작업하세요'라는 의미가 포함되어 있습니다.
자식 테마에는 부모 테마를 호출하는 코드가 추가되어 있습니다. 만약 부모 테마 내의 header.php 파일을 수정하고 싶다면 부모 테마 내의 header.php 파일을 PC로 다운로드한 후에 자식 테마 폴더로 업로드한 다음 header.php 파일을 변경하면 됩니다.
그러면 워드프레스에서는 자식 테마 폴더에 있는 파일을 먼저 찾아서 로드합니다. 만약 자식 테마 폴더에 없다면 부모 테마 폴더 내의 파일들이 로드되는 식으로 작동합니다. 그러므로 부모 테마 내의 파일을 수정하려는 경우 자식 테마 폴더로 복사(이동이 아님)한 후에 수정하면 됩니다.
참고로 테마 파일을 지나치게 수정하지 않는 것이 바람직합니다. 가능하면 후크(Hook)를 활용하고, 후크로 해결이 안 될 경우 테마 파일을 수정하는 것을 고려하시기 바랍니다. 테마 파일을 과도하게 수정하면, 추후에 테마가 크게 업데이트될 경우에 자식 테마 내의 파일들이 문제를 일으킬 수 있습니다. 훅은 워드프레스에서 제공하는 훅이 있고, 테마나 플러그인에서 자체적으로 제공하는 후크가 있을 수 있습니다.
실제로 저는 아바다 (Avada) 테마의 헤더 파일을 커스텀한 후에 아바다 테마의 버전이 크게 업데이트되면서 사이트가 작동하지 않는 현상을 경험한 적이 있습니다. 이 경우 차일드 테마 내의 파일들을 삭제하면 제대로 작동하게 될 것입니다.
코드 문제
만약 위의 문제가 아닌 경우에는 추가하는 코드 자체가 잘못되었을 수 있습니다. 코드 자체에 문제가 있을 수 있고, 혹은 워드프레스가 업데이트되면서 이전에는 잘 작동하던 코드가 업데이트된 버전에서는 잘 작동하지 않을 수 있습니다.
참고