Por que meu CSS de tema filho é chamado duas vezes?


18

Criei um tema filho de acordo com os documentos do WP e adicionei a função necessária

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

De alguma forma, termino com duas referências à folha de estilo do meu tema filho:

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

Por que é que?


Você pode postar as informações do cabeçalho do arquivo style.css no tema filho?
cybmeta

Respostas:


17

Este post está vinculado a este post, que agora eu atualizei com as alterações deste post

Obrigado por abordar esta questão. Testei rapidamente o cenário e o estilo filho é carregado duas vezes.

Quando atualizei o codex há algum tempo, verifiquei se o estilo filho seria carregado após o estilo pai, nunca levando em consideração que isso é realmente feito por padrão e o código fornecido carregaria a folha de estilo filho duas vezes.

Isso pode ser facilmente corrigido, basta remover o $priorityda função e remover a parte do enfileiramento do tema filho. Testei tudo de novo e funciona. Seria bom se duas pessoas pudessem colaborar com isso.

Enquanto isso, atualizarei o códice e o link para este post.

Aqui está o código de trabalho

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

EDITAR

Para alguém para quem esta postagem não está funcionando, consulte esta postagem . Você precisará ver como o tema pai está adicionando os estilos. O código nesta pergunta acredita estritamente que os estilos no pai são carregados da maneira correta que deveriam ser. Caso contrário, observe as alternativas na resposta vinculada e tente as alternativas


11
Testará. Parece possível que o WP não se importe com a folha de estilo seja carregada duas vezes ou que haja alguma justificativa que está faltando.
mmcglynn

Como está no tópico, encontrei alguns problemas usando esse método, detalhados aqui .
DMcClintock 9/11

A folha de estilo não será carregada duas vezes se você usar o mesmo 'id'. Mas isso cria outro problema - eu quero enfileirar a folha de estilo filho para que ela carregue após o outro css, para que eu possa substituí-la ... Mas isso apenas duplica o estilo (ou ignora se estiver usando o mesmo 'id')
php-b- motoniveladora

11
O principal problema desse método, que eu posso dizer, é que o estilo filho não gera o número da versão do tema filho. Parece atrair o número da versão do tema principal, o que nem sempre é o ideal.
Garconis 28/09

@ Pieter-Goosen Segui o exemplo de Temas crianças que utiliza o número da versão do tema da criança: wp_get_theme()->get('Version'). No entanto, acabo tendo CSS duplicado para a versão WP e a versão do tema filho: <link rel="stylesheet" id="bushwick-style-css" href="/wordpress//wp-content/themes/bushwick-child/style.css?ver=4.9.8"...>e <link rel="stylesheet" id="bushwick-child-css" href="/wordpress//wp-content/themes/bushwick-child/style.css?ver=1.3.6"...>. Qual seria a solução nesses casos?
IvanRF 04/10
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.