워드프레스 자식테마에서 부모테마 js 적용하지 않기
워드프레스 자식테마를 적용한 환경에서 IE11에서 호환되지 않는 JavaScript 함수 등이 있어 부모 테마의 JS 파일을 적용하지 않도록 해야할 상황이 생겼다. 다행히 워드프레스에서는 wp_dequeue_script() 함수와 wp_deregister_script() 를 지원하기 때문에 이 함수들을 이용하면 부모 테마에서 추가된 JS 파일을 제거하고 새로 수정된 파일을 적용할 수 있다.
<?php add_filter( 'wp_enqueue_scripts', 'theme_main_dequeue_scripts', 100 ); function theme_main_dequeue_scripts() { wp_dequeue_script( 'main-scripts' ); wp_deregister_script( 'main-scripts' ); wp_enqueue_script('main-scripts', get_stylesheet_directory_uri() . '/main2.js', array('jquery'), false, true); }
위의 코드를 자식테마 폴더에 functions.php
파일을 생성한 후 추가한다. main-scripts
등은 부모 테마에서 지정된 핸들러의 이름이다. 예를 들면 아래의 코드와 같다.
wp_enqueue_script('main-scripts', get_template_directory_uri() . '/assets/js/main.js', array('jquery'), false, true);