¿Por qué se llama dos veces al CSS de mi tema secundario?

18

Creé un tema secundario de acuerdo con los documentos de WP y agregué la función requerida

<?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 alguna manera termino con 2 referencias a la hoja de estilo del tema de mi hijo:

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

¿Porqué es eso?

mmcglynn
fuente
¿Puede publicar la información del encabezado del archivo style.css en el tema secundario?
cybmeta

Respuestas:

17

Esta publicación está vinculada desde esta publicación que ahora he actualizado con los cambios en esta publicación

Gracias por mencionar este problema. He probado rápidamente el escenario y el estilo secundario se carga dos veces.

Cuando actualicé el códice hace un tiempo, me aseguré de que el estilo secundario se cargara después del estilo primario, sin tener en cuenta que esto realmente se hace de manera predeterminada y que el código proporcionado cargaría la hoja de estilo secundaria dos veces.

Esto se puede rectificar fácilmente simplemente quitando el $priorityde la función y quitando la parte en cola para el tema secundario. He vuelto a probar todo y funciona. Sería bueno si un par de personas pueden colaborar en esto.

Mientras tanto, actualizaré el códice y vincularé a esta publicación.

Aquí está el código de trabajo.

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 cualquiera para quien esta publicación no esté funcionando, por favor vea esta publicación . Tendrá que ir y ver cómo el tema principal agrega los estilos. El código en esta pregunta cree estrictamente que los estilos en el padre se cargan de la manera correcta que deberían. Si no, mira las alternativas en la respuesta vinculada y pruébalas

Pieter Goosen
fuente
1
Se pondrá a prueba. Parece posible que a WP no le importe que la hoja de estilo se cargue dos veces o que exista alguna razón que nos falta.
mmcglynn
Como se trata del tema, encontré un par de problemas al usar este método, detallado aquí .
dMcClintock
La hoja de estilo no se cargará dos veces si usa el mismo 'id'. Pero esto crea otro problema: quiero poner en cola la hoja de estilo secundaria para que se cargue después del otro css para poder anularla ... Pero esto solo duplica el estilo (o lo ignora si usa el mismo 'id')
php-b- grado
1
El problema principal con este método, que puedo decir, es que el estilo secundario no incluye el número de versión del tema secundario. Parece extraer el número de versión del tema principal, que no siempre es ideal.
Garconis
@ Pieter-Goosen Seguí el ejemplo de Temas Niño que utiliza el número de versión del tema de los niños: wp_get_theme()->get('Version'). Sin embargo, termino teniendo CSS duplicado para la versión WP y la versión del tema secundario: <link rel="stylesheet" id="bushwick-style-css" href="/wordpress//wp-content/themes/bushwick-child/style.css?ver=4.9.8"...>y <link rel="stylesheet" id="bushwick-child-css" href="/wordpress//wp-content/themes/bushwick-child/style.css?ver=1.3.6"...>. ¿Cuál sería la solución en estos casos?
IvanRF