* 이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
(워드프레스 해부 ⑯) 자원
CSS·JS를 붙일 때 헤더에 <link>나 <script>를 직접 박고 싶은 유혹이 든다. 워드프레스에선 이러면 안 된다. 대신 엔큐(enqueue) 시스템을 쓴다 — wp_enqueue_style(), wp_enqueue_script().
왜 굳이? 엔큐를 쓰면 워드프레스가 의존성·버전·중복을 알아서 관리한다. jQuery가 필요한 스크립트면 “jQuery 먼저 로드”를 자동 처리하고, 두 플러그인이 같은 라이브러리를 부르면 한 번만 로드한다. 직접 태그를 박으면 이 모든 게 깨진다.
직접 해보기
// functions.php — 내 스타일과 스크립트를 올바르게 등록
add_action( 'wp_enqueue_scripts', function() {
wp_enqueue_style(
'my-style', // 핸들(고유 이름)
get_stylesheet_directory_uri() . '/my.css',
array(), // 의존성
'1.0' // 버전(캐시 무효화용)
);
wp_enqueue_script(
'my-script',
get_stylesheet_directory_uri() . '/my.js',
array( 'jquery' ), // jQuery에 의존 → 먼저 로드됨
'1.0',
true // 푸터에 로드(성능)
);
} );
버전 인자가 은근히 중요하다. CSS를 고쳤는데 브라우저가 옛 버전을 캐시하고 있으면 반영이 안 되는데, 버전을 올리면 URL이 my.css?ver=1.1로 바뀌어 강제로 새로 받는다.
✅ 확인 — 스타일을 엔큐한 뒤 페이지 소스를 보면
<link ... id='my-style-css' href='.../my.css?ver=1.0'>처럼 핸들 이름이 붙은 태그가 뜬다. 워드프레스가 관리하는 방식으로 로드됐다는 증거다.
올바른 훅에서 등록하기
엔큐는 아무 데서나 하면 안 되고 정해진 훅에서 한다. 프런트는 wp_enqueue_scripts, 관리자 화면은 admin_enqueue_scripts, 블록 에디터는 enqueue_block_editor_assets. 훅을 맞춰야 그 화면에만 자원이 실린다.
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style( 'cozlab-main', get_stylesheet_uri(), array(), '1.0' );
wp_enqueue_script(
'cozlab-app', // 핸들(고유 이름)
get_theme_file_uri( 'js/app.js' ), // URL
array( 'jquery' ), // 의존성 — jQuery 먼저
'1.0', // 버전(캐시 무효화)
true // 
답글 남기기