워드프레스 차일드테마 만들기

워드프레스의 원본 테마에 바로 변경을 가하게 되면 원본 테마가 업데이트 될때 해당 변경사항이 사라져 버립니다. 그러면 다시 업데이트된 원본 테마에 다시 설정하는 번거로움이 생깁니다. 이것을 방지하기 위해 워드프레스 차일드 테마 (Child Theme)를 만드는 것입니다.

워드프레스의 차일드 테마 (Child Theme)를 만들어주는 플러그인도 있습니다. 플러그인을 설치하고 몇가지 설정만 하면 자동으로 만들어 줍니다. 하지만 여기서는 플러그인이 아닌 수동으로 워드프레스 차일드테마를 만드는 방법을 소개합니다. 플러그인을 자꾸 깔다보면 워드프레스가 무거워지는 감이 있어서요..


워드프레스 차일드테마 생성방법

1. 차일드테마 신규 디렉토리 생성

워드프레스가 설치된 최상위 폴더를 살펴보면 “wp-content/theme” 라는 테마폴더가 있습니다. 이곳에 설치된 테마들이 모여 있습니다. 원본테마의 폴더가 있는 것이지요. 이 부모 폴더와 차일드테마의 폴더가 함께 있어야 합니다.

저는 아마존 라이트세일에서 워드프레스가 설치되어 있습니다. 아마존 라이트세일에서 워드프레스 최상위 폴더는 “/opt/bitnami/apps/wordpress/htdocs/” 입니다. 그 아래에 wp-content/theme 이렇게 나갑니다.

/opt/bitnami/apps/wordpress/htdocs/wp-content/themes

이곳에 자식테마의 폴더를 하나 만듭니다. 예를들어 부모테마가 “oceanwp”라면 자식테마는 “oceanwp-child” 이런 식으로 이름을 지으면 됩니다.

2. “style.css” 파일 생성

일단 부모테마에서 “style.css” 파일이 어떤 경로에 위치해 있는지 확인한 후에, 자식테마에서도 똑같은 경로를 만들어서 style.css파일을 생성합니다. 그리고 그파일의 상단에 아래와 같은 내용을 작성합니다.

이것이 어떤 부모테마의 자식인지를 인식시키는 것입니다. 일반적으로 CSS에서 /* … */안의 내용은 주석이지만 워드프레스에서 차일드테마를 만들때는 규칙을 꼭 지켜서 작성해야 합니다.

/* Theme Name: oceanwp-Child Template: oceanwp Author: torres Version: 1.0.0 */
Code language: CSS (css)

여기서 중요한 것은 Theme Name와 Template 항목은 필수항목으로 반드시 정확하게 적어줘야 합니다. 나머지는 옵션으로 필요없으면 빼도 됩니다. Theme Name는 차일드테마의 이름입니다. Template는 부모테마 폴더 이름으로 오타없이 정확하게 적어야 합니다.

3. “functions.php” 파일 생성

차일드테마의 폴더에 functions.php 파일을 만들고 아래에 있는 함수코드를 그대로 입력합니다.

<?php function oceanwp_enqueue_styles() { $parent_style = 'parent-style'; wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' ); wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ), wp_get_theme()->get('Version') ); } add_action( 'wp_enqueue_scripts', 'oceanwp_enqueue_styles' ); ?>
Code language: PHP (php)

4. “screenshot.png” 파일 가져오기

부모테마 폴더에서 “screenshot.png” 그림파일을 찾아서 차일드테마 폴더에 붙여넣기 합니다. 이 그림파일은 큰 의미는 없지만 워드프레스 관리화면에서 테마디자인>테마 를 볼때 그림이 나오게 하는 것입니다.

5. 테마디자인>테마에서 차일드테마 활성화

제목 그대로 관리화면>테마디자인>테마 로가서 새로 만들어진 차일드테마를 활성화시키면 됩니다. 이것으로 워드프레스 차일드테마 완전히 생성된 것입니다.


차일드테마 활용시 유의점

차일드테마를 이용하면 부모테마 업데이트시 커스터마이징한 부분이 여전히 살아 있다는 장점이 있어서 편리하다고 했습니다. 하지만 역으로 생각해보면 이 부분이 상당한 리스크이기도 합니다.

차일드테마로 너무 많은 부분을 수정/편집했다면 부모테마가 업데이트될 때 해당부분과 충돌로 인하여 더이상 작동하지 않을 수도 있습니다. 그래서 차일드테마로 자신에 맞게 수정하는 부분을 가급적 최소화하는 것이 좋을듯 합니다.

답글 남기기

17 − 11 =