내 하위 테마 CSS가 두 번 호출되는 이유는 무엇입니까?


18

WP 문서에 따라 하위 테마를 작성하고 필수 기능을 추가했습니다.

<?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(), array('parent-style')  );
}

어떻게 든 나는 내 자식 테마 스타일 시트에 대한 2 개의 참조로 끝납니다.

<link rel='stylesheet' id='twentythirteen-style-css'  href='http://DOMAIN.COM/wp-content/themes/twentythirteen-child/style.css?ver=2013-07-18' type='text/css' media='all' />

<link rel='stylesheet' id='child-style-css'  href='http://DOMAIN.COM/wp-content/themes/twentythirteen-child/style.css?ver=4.0' type='text/css' media='all' />

왜 그런 겁니까?


하위 테마에 style.css 파일의 헤더 정보를 게시 할 수 있습니까?
cybmeta

답변:


17

이 게시물에 링크되어 이 게시물에 내가 지금이 게시물의 변화로 업데이트 한

이 문제를 제기 해 주셔서 감사합니다. 시나리오를 빠르게 테스트했으며 자식 스타일이 실제로 두 번로드되었습니다.

얼마 전에 코덱을 업데이트했을 때 자식 스타일이 부모 스타일 다음에로드되는지 확인했습니다. 실제로 기본적으로 수행되며 주어진 코드가 실제로 자식 스타일 시트를 두 번로드한다는 점을 고려하지 마십시오.

단순히 $priority함수에서를 제거하고 자식 테마의 대기열 부분을 제거하여 쉽게 수정할 수 있습니다 . 나는 모든 것을 다시 테스트했으며 작동합니다. 두 사람이 공동 작업 할 수 있다면 좋을 것입니다.

그 동안 코덱을 업데이트하고이 게시물에 링크합니다.

작동 코드는 다음과 같습니다.

add_action( 'wp_enqueue_scripts', 'enqueue_parent_theme_style');
function enqueue_parent_theme_style() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}

편집하다

이 게시물가 작동하지 않는 사람을 참조하시기 바랍니다 이 게시물을 . 부모 테마가 스타일을 추가하는 방법을 살펴 봐야합니다. 이 질문의 코드는 부모의 스타일이 올바른 방식으로로드된다고 엄격하게 믿습니다. 그렇지 않은 경우 링크 된 답변의 대안을보고 사용해보십시오.


1
테스트합니다. WP가 스타일 시트를 두 번로드하는 것을 신경 쓰지 않거나 누락 된 몇 가지 근거가있을 수 있습니다.
mmcglynn

주제에 관해서는이 방법을 사용하여 몇 가지 문제가 발생했습니다 . 여기자세히 설명되어 있습니다 .
dMcClintock 2016

동일한 'id'를 사용하면 스타일 시트가 두 번로드되지 않습니다. 그러나 이것은 또 다른 문제를 만듭니다. 자식 스타일 시트를 대기열에 추가하여 다른 CSS 후에로드하여 재정의 할 수 있습니다 ... 그러나 이것은 스타일을 복제합니다 (또는 동일한 'id'를 사용하는 경우 무시합니다)
php-b- 학년

1
내가 알 수있는이 방법의 주요 문제는 자식 스타일이 자식 테마의 버전 번호를 가져 오지 않는다는 것입니다. 부모 테마의 버전 번호를 가져 오는 것 같습니다. 항상 이상적인 것은 아닙니다.
Garconis

@ pieter-goosen 나는 자식 테마 의 버전 번호를 사용하는 자식 테마 의 예제를 따랐습니다 wp_get_theme()->get('Version'). 그러나 나는 WP 버전과 아이 테마 버전에 대한 중복 CSS를 가진 끝 : <link rel="stylesheet" id="bushwick-style-css" href="/wordpress//wp-content/themes/bushwick-child/style.css?ver=4.9.8"...><link rel="stylesheet" id="bushwick-child-css" href="/wordpress//wp-content/themes/bushwick-child/style.css?ver=1.3.6"...>. 이 경우 해결책은 무엇입니까?
IvanRF
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.