워드프레스 자식테마에서 부모테마 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);

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.