기본 테마를 변경을 하고 css나 스크립트 등 몇가지를 변경해서 커스터마이즈했을 때 그 테마가 업데이트 되면 기존것이 덮어져 버려서 수정된 부분이 사라진다.
나는 보통 차일드를 만들어 운용한다.
1.부모 테마의 폴더이름을 복사해 둔다.
2.만들 자식 폴더의 이름은 아무거나 해도 된다.
나는 보통 부모테마폴더명+-child를 붙인다.
3.자식테마에 style.css를 만든다.
그리고 젤 위에 Theme Name은 아무거나
Template: 는 1번에서 복사해둔 폴더이름을 붙여넣는다. 이걸 잘못하면 적용시에 템플릿을 찾을 수 없다고 나오니 유의 한다.
/*
Theme Name: twentytwenty child
Template: twentytwenty
*/
그렇게 하고 실시간 적용을 해보면 css가 깨짐을 알 수 있다. 이는 두가지가 있다.
자식 style.css에 아래 부모것을 가져온 뒤 import 시킨다.
/* 부모 css 가져옴 이거 해줘야 안깨짐 */
@import url( “../twentytwenty/style.css” );
두번째로는 자식테마 폴더에 functions.php를 만들고 아래처럼 붙인다.
<?php
function theme_enqueue_styles() {
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’ ) );
}add_action( ‘wp_enqueue_scripts’, ‘theme_enqueue_styles’ );
?>
끝.
이후에 부모에 있는 페이지를 수정할 경우는 자식폴더에 똑같은 폴더 구조와 이름으로 수정하면 된다.
header나 index.php 는 자식것을 먼저 찾고 못 찾으면 부모를 적용을 시킨다.
functions.php는 기존 부모꺼에 더해져서 자식 functions.php가 적용이 된다.
즉 처음은 빈값이여야 한다.