Child Theme에서 최신 버전의 style.css를로드 할 수 없습니다.


9

Child 테마를 올바르게 설정했습니다. 그러나 자식 테마 style.css에서 변경 사항을 사이트에 반영 할 수는 없습니다. 브라우저 캐시를 백만 번 비우려고 시도했지만 작동하지 않습니다!

자식 템플릿 파일을 만들었고 부모 템플릿 파일을 무시합니다.

나는 버전이 없어도 스타일 시트 끝에 버전 번호를 넣는보기가 어리석은 것으로 나타났습니다!-style.css? ver = 3.9.1

내가 만든 다른 사이트에는 스타일 시트 버전이 없으므로 설정하지 않으려는 경우 자동으로 스타일 시트가 배치되는 이유는 무엇입니까?

최신 버전의 Child style.css 파일을 사용하도록하고 버전을 사용하지 않으려면 어떻게해야합니까?

내 사이트 URL은 다음과 같습니다 .- http://www.peterswebservices.co.uk/


1
브라우저 캐싱이 가장 확실한 가능성이지만 서버 캐싱은 동일한 효과를 유발할 수 있으며 일부 ISP 및 독립 사이트에서 제공하는 웹 "가속기"도 가능합니다.
s_ha_dum

보고있는 버전 부분은 워드 프레스에 의해 자동으로 추가되는 현재 워드 프레스 버전입니다. 그것에 대해 걱정할 필요가 없습니다.
Pieter Goosen

답변:


4

스물 넷에서 자녀 테마에 이것을 넣으십시오.

function add_require_scripts_files() {
 wp_enqueue_style('twentyfourteen-style', get_stylesheet_directory_uri().'/style.css', array(), '1.0.0', "all");        
}
add_action( 'wp_enqueue_scripts', 'add_require_scripts_files' );

이것은 원래 스타일 시트를 대신하지만 자신의 버전으로 바꿉니다. 다른 상위 테마를 사용중인 경우 style.css의 원래 wp_enqueue_style 레이블을보고 하위 테마 내에서 해당 레이블을 복제하십시오. 변경할 때마다 1.0.0을 다른 숫자로 변경해야합니다 (따라서 자주 변경하지 않는 프로덕션 환경에서는 더 좋습니다).

스크립트와 스타일에서 버전을 모두 제거하려면 다음을 시도하십시오.

// remove WP version tag from scripts and styles, best for dev environments
// by Adam Harley https://wordpress.org/support/topic/enqueueregister-script-remove-version
add_filter( 'script_loader_src', 'remove_src_version' );
add_filter( 'style_loader_src', 'remove_src_version' );
function remove_src_version ( $src ) {
  global $wp_version;
  $version_str = '?ver='.$wp_version;
  $version_str_offset = strlen( $src ) - strlen( $version_str );
  if( substr( $src, $version_str_offset ) == $version_str )
    return substr( $src, 0, $version_str_offset );
}

4

X와 함께 사용한 Child 테마의 'functions.php'에 아래 함수를 추가하면 비슷한 상황에서 많은 도움이되었습니다.

add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_styles', PHP_INT_MAX);
function enqueue_child_theme_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), NULL, filemtime( get_stylesheet_directory() . '/style.css' ) );
}

그냥 잊지 마세요 당신의 웹 사이트 라이브 시작하기 전에이를 제거 할 수 있습니다.

또한이 업데이트를 적용하려면 호스팅 서비스 제공 업체의 캐싱 기능에주의하십시오.

저자에 따르면 :

... 워드 프레스에 childtheme-stylesheet를 filemtime ()과 결합하여 브라우저가 css 파일의 새로운 버전을로드하도록하는 가장 좋은 방법입니다. 필자는 절대 터치하지 않기 때문에 부모 스타일에 filemtime ()을 사용하지 않았으므로 filemtime ()은 리소스 만 낭비합니다.

출처 :의 다니엘에 의해 코멘트 2014년 10월 22일 기사에 방지 CSS 캐싱 : https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141


0

사이트를 보지 않으면 문제를 진단하는 데 도움이되지 않지만 일반적으로 발생하는 CSS는 하위 CSS보다 우선 순위가 높은 주제입니다. !important예를 들어 태그 를 사용하여이를 무시할 수 있습니다

#element {
 color:#fff !important;
}

중요한 태그는 CSS가 동일한 CSS 행을 가진 다른 CSS 파일보다 우선 순위로 표시합니다.

우리에게 URL을 알려주고 이것이 도움이된다면


중요하지 않다고 생각하지만 여기에 내 URL이 있습니다 : -peterswebservices.co.uk 또한 Chrome에서 관리자를 사용하고 최신 변경 사항없이 이전 버전을 표시하는 CSS 파일로 드릴 다운 할 때.
user1199360

0

방금 동일한 문제가 발생했으며 기본적으로 일종의 캐싱이 설정된 새로운 호스트로 밝혀졌습니다. 제어판으로 가서 캐시를 플러시 한 다음 올바른 style.css 파일을 올바르게 제공했습니다.

? ver = 3.9.1은 (적어도 나를 위해) 빨간 청어로 판명되었습니다. 캐시를 플러시 한 후에도 여전히? ver = 3.9.1이라고 표시됩니다. 이것은 css 파일의 어느 곳에서도 찾을 수 없지만 모두 정상적으로 작동합니다.


1
?ver=3.9.1자동으로 워드 프레스에 의해 추가됩니다. 이것은 워드 프레스의 현재 버전이며 테마와 관련이 없습니다 :-)
Pieter Goosen

0

나는 같은 문제가 있었고 기본값과 다른 방법으로 고쳤다.

먼저 변경해야 할 파일을 찾았습니다.

wp-includes\theme.php

get_stylesheet_uri 라는 함수가 있습니다

내 기능은 다음과 같습니다

function get_stylesheet_uri() {
    $time = time();
    $stylesheet_dir_uri = get_stylesheet_directory_uri();
    $stylesheet_uri = $stylesheet_dir_uri . '/style.css?v='.$time;
    /**
     * Filter the URI of the current theme stylesheet.
     *
     * @since 1.5.0
     *
     * @param string $stylesheet_uri     Stylesheet URI for the current theme/child theme.
     * @param string $stylesheet_dir_uri Stylesheet directory URI for the current theme/child theme.
     */
    return apply_filters( 'stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri );
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.