Чому тему 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' );
}

EDIT

Для всіх, для яких ця публікація не працює, перегляньте її . Вам потрібно буде переглянути і подивитися, як батьківська тема додає стилі. Код у цьому питанні суворо вважає, що стилі в батьківському файлі завантажуються в правильному порядку, яким вони повинні бути. Якщо ні, то подивіться на альтернативи у зв’язаній відповіді та спробуйте їх


1
Буде тестувати. Мабуть, можливо, що WP не піклується про те, щоб таблиця стилів завантажувалася двічі, або що ми не вистачаємо.
mmcglynn

Як це стосується теми, я зіткнувся з декількома проблемами, використовуючи цей метод, детально описаний тут .
dMcClintock

Таблиця стилів не завантажуватиметься двічі, якщо використовується той самий "id". Але це створює ще одне питання - я хочу занести дочірню таблицю стилів, щоб вона завантажувалася після іншого css, щоб я міг її замінити ... Але це лише дублює стиль (або ігнорує, якщо використовувати той самий 'id')
php-b- грейдер

1
Основна проблема цього методу, яку я можу сказати, полягає в тому, що дитячий стиль не включає номер версії дочірньої теми. Здається, висуває номер версії батьківської теми, що не завжди ідеально.
Гарконіс

@ Pieter-Гусний я пішов приклад на дитину тему , яка використовує номер версії дитячої теми: wp_get_theme()->get('Version'). Однак я в кінцевому підсумку продублював CSS для версії WP та дочірньої теми теми: <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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.