대기열에 넣은 스타일 및 스크립트에서 버전 URL 매개 변수 (? ver = XXX) 방지


12

사용 사례

Chrome의 Dev Tools Workspace 기능을 실험하고 있습니다. Dev Tools에서 파일을 직접 편집하고 저장된 스타일 시트를 새로 고치거나 컴파일하고 새로 고칠 수 있습니다.

그러나 StackOverflow 질문 "SASS가 CSS를 다시 컴파일 할 때 Chrome의"자동 재로드 CSS 생성 "페이지가 다시로드되지 않음" 문서에 설명 된대로 스타일 시트 URL의 URL 매개 변수는 Chrome이 변경 사항을 인식하지 못하도록합니다.

요망되는 결과

즉 , 개발 하는 동안에 만?ver=X.X.X 표준 스타일 시트 <link>출력 에서 를 제거하고 싶었습니다 wp_enqueue_style(). 즉, 기본값을 원했습니다 href.

http://localhost/mysite/wp-includes/style.css?ver=4.1.1

대신이 :

http://localhost/mysite/wp-includes/style.css

답변:


12

기본 wp_enqueue_[style/script]()행동

에 대한 기본값 $version인수wp_enqueue_style()IS false. 그러나 기본적으로 스타일 시트에 WordPress 버전이 제공 됩니다.

해결책

"WordPress에서 대기열에 넣은 CSS 및 JS에서 버전 제거" 덕분에 버전으로 전달 null하면 버전이 완전히 제거 된다는 문서화되지 않은 사실을 알게 되었습니다!

wp_enqueue_style( 'wpse-styles', get_template_directory_uri() . '/style.css', array(), null );

경고 알림

질문에서 지적했듯이 이것은 아마도 특정 유스 케이스에서와 같이 개발 중에 만 수행되어야한다는 것을 지적 할 가치가 있습니다. version 매개 변수는 사이트 방문자를위한 캐싱 (캐싱이 아님)에 도움이되므로 99 %의 경우에는 그대로 두어야합니다.


8

게시물 주셔서 감사합니다, mrwweb.

사이트가 더 이상 개발되지 않을 때 비활성화 할 수있는 매우 간단한 플러그인을 만들어서 이것에 대한 또 다른 해결책을 찾았습니다.

<?php

/*
Plugin name: Strip WP Version in Stylesheets/Scripts
*/

function switch_stylesheet_src( $src, $handle ) {

        $src = remove_query_arg( 'ver', $src );
        return $src;
}
add_filter( 'style_loader_src', 'switch_stylesheet_src', 10, 2 );

?>

이 솔루션을 찾으려고 몇 분을 보냈습니다. 새로운 질문 / 답변을 만드는 대신 여기에서 다른 옵션을 공유 할 수 있다고 생각했습니다.


작동하지 않습니다 ...
reggie

이것이 정답입니다. 개발 중에이 필터를 사용하고 일단 활성화되면 제거하십시오.
dtbaker

큐 스타일과 큐 스타일보다 낫습니다. 필터가있는 스크립트에도 적용script_loader_src
Dharma
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.