WordPress에서 .css 버전을 변경하는 방법은 무엇입니까?


13

제목에서 알 수 있듯이 내 테마에서 .css 파일 버전을 변경하는 방법이 너무 확실하지 않습니다. 현재 .css 버전 관리는 다음과 같습니다.

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=4.6.1' type='text/css' media='all' />

실행해야하는 스크립트가 있습니까? 위의 버전 4.6.2를 어디에서 만들어야합니까?


이 스크립트를 어떻게 인쇄합니까?
Nathan Powell

답변:


18

네 번째 인수 $ver에 대해는 wp_enqueue_style()당신이 버전을 설정할 수 있습니다 :

wp_enqueue_style( string $handle,
                  string $src = false,
                  array $deps = array(),
                  string|bool|null $ver = false,
                  string $media = 'all' );

문서 당 :

$ ver (string | bool | null) (선택 사항) 스타일 시트 버전 번호 (있는 경우)를 지정하는 문자열로, 캐시 버스 팅을 위해 쿼리 문자열로 URL에 추가됩니다. version을 false로 설정하면 현재 설치된 WordPress 버전과 동일한 버전 번호가 자동으로 추가됩니다. null로 설정하면 버전이 추가되지 않습니다. 기본값: false


그것에 대해 감사합니다-내가 묻는 것은 '어떻게해야합니까?'즉, '새 버전을 생성하기 위해 스크립트를 어떻게 실행합니까?'입니다. 이해가
되길

wp_enqueue_style()호출 된 코드로 질문을 업데이트 하시겠습니까 ? WordPress는 $ver답변 에 게시 된 설명에 따라 버전 관리를 자동으로 처리 하므로 $ ver가 false로 설정되어 있다고 가정합니다. 변경하려면 $ ver 인수를 새 문자열로 변경하십시오 (WordPress에서 이미 해당 규칙을 사용하기 때문에 4.6.2를 사용하지 않을 것입니다). 기술적으로 작동합니다.
Dave Romsey

1
당신은 쉽게 거기에 아무것도 대체 할 수 있습니다. 예를 들어 $ver = time();페이지를 방문 할 때마다 새 버전을 만들고 버전이 시간이됩니다.
Nathan Powell

8

대부분 테마의 wp_enqueue_style()functions.php 파일 내에서 함수를 사용 하여 헤더에 스타일 시트를 추가합니다. 테마가 동일한 지 확인하는 방법은 다음과 같습니다.

wp-content/themes/YOUR_THEME_NAME/functions.php파일을 열고 다음 과 같이 스타일 시트를 추가하는 행을 찾으십시오.

wp_enqueue_style('main_style',  get_stylesheet_directory_uri() . '/style.css');

또는 같은 :

wp_enqueue_style( 'twentysixteen-style', get_stylesheet_uri() );

ID를 검색 할 수 있습니다 ( -css일부 제외 ). ID가 : functions.php 파일에서 main_style-css검색 main-style하면 원하는 코드 줄을 찾을 수 있습니다.

코드를 찾았 으면 테마가 wp_enqueue_style()functions.php 파일 을 사용하여이 스타일 시트를 추가한다는 것을 알았습니다 . 버전에 맞게이 코드를 업데이트해야합니다.

$style_ver = filemtime( get_stylesheet_directory() . '/style.css' );
wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', $style_ver );

보시다시피이 코드는 filemtime()PHP 함수를 사용하여 style.css 파일의 마지막 수정 시간을 가져오고 PHP 함수를 사용 하여 시간을 타임 스탬프로 변환하여 time()정리합니다.

매번 버전을 동적으로 변경하지 않으려면 다음과 같이하십시오.

wp_enqueue_style( 'main_style', get_stylesheet_directory_uri() . '/style.css', '', '1.5' );

그게 다야. 평화!


헤즈 업 : 시스템 경로를 반환하므로 get_stylesheet_directory()내부에서 사용해야 filemtime()합니다.
Half Crazed

3

나는이 답변을 많이 얻지 못했기 때문에 나를 위해 일한 것을 쓸 것이라고 생각했습니다. 나는 코덱스가 말한다 :

$ ver (string | bool | null) (선택 사항) 스타일 시트 버전 번호 (있는 경우)를 지정하는 문자열로, 캐시 버스 팅을 위해 쿼리 문자열로 URL에 추가됩니다. version을 false로 설정하면 현재 설치된 WordPress 버전과 동일한 버전 번호가 자동으로 추가됩니다. null로 설정하면 버전이 추가되지 않습니다. 기본값 : false

그러나 실제로 작동하는 방식은 매우 비밀입니다. 스타일 시트 wp_enqueue_style와 같은 쿼리 매개 변수를 트리거하기 위해 버전 번호를 얻을 수 없습니다 ?ver=1.2.3. 그러나이를 true로 설정하면 스타일 시트의 선언 된 버전 cache bust이 스타일 시트에 허용됩니다. (읽어)

style.css 내에서 테마 이름을 지정해야합니다. 이것은 WP에 필요합니다. 그러나 versionwp_enqueue_style의 boolean 버전 과 같은 다른 옵션 도 참조를 제공합니다.

/******************************************************************
Site Name: MySite.com
Author: @BenRacicot
Version: 4.0 // <- wp_enqueue_style's version number
Stylesheet: Main Stylesheet
******************************************************************/

지금은에 있음을 변경할 때 Version: 4.1내가 얻을style.css?cache-bust=0.24135995238933283


2

다음 time()과 같은 대기열 스타일이나 스크립트에서 간단하게 사용할 수 있습니다 .

워드 프레스 wp_enqueue_style()기능을 사용하지 않고

<link rel='stylesheet' id='xxxx'  href='https://www. site css/ styles.css?ver=<?php echo time(); ?>' type='text/css' media='all' />

wp_enqueue_style()기능 사용

wp_enqueue_style('style_sheet_name', get_stylesheet_directory_uri() . '/custom_style.css', '', time());

또는

wp_enqueue_style('style_sheet_name', get_stylesheet_uri() . '/custom_style.css', '', time());

1
나는 이것을 권장하지 않을 것입니다. 버전 캐싱을 모두 물리 칠 것이라고 확신합니다.
Fabian von Ellerts
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.