Mengapa CSS tema anak saya dipanggil dua kali?

18

Saya membuat tema anak menurut dokumen WP dan menambahkan fungsi yang diperlukan

<?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')  );
}

Entah bagaimana saya berakhir dengan 2 referensi ke stylesheet tema anak saya:

<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' />

Mengapa demikian?

mmcglynn
sumber
Bisakah Anda memposting informasi header file style.css di tema anak?
cybmeta

Jawaban:

17

Posting ini ditautkan dari posting ini yang sekarang saya perbarui dengan perubahan pada posting ini

Terima kasih telah mengemukakan masalah ini. Saya telah dengan cepat menguji skenario dan gaya anak sebenarnya dimuat dua kali.

Ketika saya memperbarui codex beberapa waktu yang lalu saya memastikan bahwa gaya anak akan dimuat setelah gaya induk, tidak pernah benar-benar mempertimbangkan bahwa ini sebenarnya dilakukan secara default dan kode yang diberikan sebenarnya akan memuat stylesheet anak dua kali.

Ini dapat dengan mudah diperbaiki dengan hanya menghapus $prioritydari fungsi dan menghapus bagian enqueue untuk tema anak. Saya telah menguji ulang semuanya, dan itu berhasil. Alangkah baiknya jika beberapa orang dapat berkolaborasi ini.

Sementara itu, saya akan memperbarui kodeks dan tautan ke posting ini.

Ini kode kerjanya

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

Bagi siapa pun yang posnya tidak berfungsi, silakan lihat pos ini . Anda harus pergi dan melihat bagaimana tema induk menambahkan gaya. Kode dalam pertanyaan ini sangat percaya bahwa gaya pada induk dimuat dengan cara yang benar. Jika tidak, lihat alternatif di jawaban yang terhubung dan cobalah

Pieter Goosen
sumber
1
Akan menguji. Tampaknya mungkin bahwa WP tidak peduli dengan stylesheet akan dimuat dua kali atau bahwa ada beberapa alasan yang kita lewatkan.
mmcglynn
Karena ada pada topik, saya menemui beberapa masalah menggunakan metode ini, dirinci di sini .
dMcClintock
Stylesheet tidak akan dimuat dua kali jika Anda menggunakan 'id' yang sama. Tapi ini menciptakan masalah lain - saya ingin enequeue stylesheet anak sehingga memuat setelah css lain sehingga saya bisa menimpanya ... Tapi ini hanya menduplikasi gaya (atau mengabaikan jika menggunakan 'id' yang sama)
php-b- grader
1
Masalah utama dengan metode ini, yang bisa saya katakan, adalah gaya anak tidak menarik nomor versi tema anak. Tampaknya menarik nomor versi dari tema induk, yang tidak selalu ideal.
Garconis
@ pieter-Goosen saya mengikuti contoh di Themes anak yang menggunakan nomor versi dari tema anak: wp_get_theme()->get('Version'). Namun saya akhirnya memiliki duplikat CSS untuk versi WP dan versi tema anak: <link rel="stylesheet" id="bushwick-style-css" href="/wordpress//wp-content/themes/bushwick-child/style.css?ver=4.9.8"...>and <link rel="stylesheet" id="bushwick-child-css" href="/wordpress//wp-content/themes/bushwick-child/style.css?ver=1.3.6"...>. Apa yang akan menjadi solusi dalam kasus ini?
IvanRF