부모 테마의 CSS 파일을 어떻게 큐에서 빼나요?


33

부모 테마 (Starkers)는 제거하려는 CSS 파일을 추가합니다 (@import를 대신 사용하여 스타일을보다 쉽게 ​​재정의 할 수 있음). Starkers의 functions.php에는 다음이 있습니다.

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    wp_register_script( 'site', get_template_directory_uri().'/js/site.js', array( 'jquery' ) );
    wp_enqueue_script( 'site' );

    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

자식 functions.php에서 다음을 시도했지만 링크 및 스크립트 태그는 여전히 head 섹션에 나타납니다.

add_action('init', 'removeScripts');
function removeScripts() {
    wp_dequeue_style('screen');
    wp_deregister_script('site');
}

부모 헤더에 하드 코딩되어 있고 그렇지 않은지 두 번 확인했습니다.

답변:


39

대신 @import를 사용하여 스타일을 더 쉽게 재정의 할 수 있습니다.

간단히. 하지마 해야 할 것. 그.

당신은 단순히 같은 훅으로 뛰어 들어간 다음 스타일 / 스크립트를 등록 해제 / 디 큐잉하고 사용자 지정 커스텀에 넣습니다.

function PREFIX_remove_scripts() {
    wp_dequeue_style( 'screen' );
    wp_deregister_style( 'screen' );

    wp_dequeue_script( 'site' );
    wp_deregister_script( 'site' );

    // Now register your styles and scripts here
}
add_action( 'wp_enqueue_scripts', 'PREFIX_remove_scripts', 20 );

스크립트를 대기열에서 제거하고 등록을 취소하는 이유는 간단합니다.

대기열에서 해당 핸들 ( 'screen'또는 'site') 중 하나를 사용하려면 핸들 을 등록 해제해야합니다. 예를 들면 : wp_deregister_style( 'screen' );wp_deregister_script( 'site' );- peterjmag


1
아마도 간단하지만 공식 WP 문서에는 codex.wordpress.org/Child_Themes 가 부족 합니다. 그들은 dequeue에 대해 말하지 않고 아동 테마를 등록 취소합니다
gagarine

-1

다음은 부모 테마의 스타일 시트를 제거하고이를 자식 테마의 스타일 시트로 바꾸거나 부모의 스타일 시트를로드하지 않도록 제거하는 방법입니다.

Starker 테마의 functions.php :

add_action( 'wp_enqueue_scripts', 'script_enqueuer' );

function script_enqueuer() {
    //...
    wp_register_style( 'screen', get_template_directory_uri().'/style.css', '', '', 'screen' );
    wp_enqueue_style( 'screen' );
}

그들이 '스크린' 스타일이라고 부르는 손잡이를 기억하십시오

부모 테마를 자식 테마의 스타일 시트로 교체

Starker-Child 테마의 functions.php :

function custom_starkers_styles() {

    //Remove desired parent styles
    wp_dequeue_style( 'screen');

    //Replace with custom child styles
    wp_register_style( 'screen-child',​ trailingslashit( get_template_directory_uri() ). 'screen.css' );
    wp_enqueue_style( 'screen-child​'​);
}

add_action( 'wp_enqueue_scripts','custom_starkers_styles', 20 );

부모 테마의 스타일 시트 제거

Starker-Child 테마의 functions.php :

function remove_starkers_styles() {

    //Remove desired parent styles
    wp_dequeue_style( 'screen');

}

add_action( 'wp_enqueue_scripts','remove_starkers_styles', 20 );

우리는 자식 테마의 add_action () 에 우선 순위 20을 부여합니다 (기본값은 10). 우선 순위가 높을수록 나중에 실행됩니다. 20> 10이므로 하위 테마의 동작은 항상 상위 테마가 이미 실행 된 후에 실행됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.