No puedo hacer que el Child Theme cargue la última versión de style.css

20 may 2014, 15:54:33
Vistas: 18.6K
Votos: 11

Estoy usando un Child Theme configurado correctamente. Pero simplemente no puedo hacer que los cambios en el style.css del Child Theme se reflejen en el sitio. ¡He intentado vaciar la caché del navegador millones de veces y no funciona!

He creado archivos de plantilla hijo y sobrescriben los del tema padre sin problemas.

He notado que al ver el código fuente agrega un número de versión al final de la hoja de estilo así:- style.css?ver=3.9.1 ¡a pesar de que no he creado ninguna versión!

En otro sitio que creé no hay versionado de la hoja de estilo, entonces ¿por qué se agrega automáticamente cuando no quiero que esté configurado?

¿Cómo puedo forzar a que use la versión más actualizada del archivo style.css del Child y que no lo versione?

Aquí está la URL de mi sitio:- http://www.peterswebservices.co.uk/

3
Comentarios

El almacenamiento en caché del navegador es la posibilidad más obvia, pero el almacenamiento en caché del servidor puede causar el mismo efecto, al igual que los "aceleradores" web que ofrecen algunos ISP y sitios independientes.

s_ha_dum s_ha_dum
20 may 2014 15:57:50

La parte de versión que estás viendo es simplemente la versión actual de WordPress que se agrega automáticamente por WordPress. No hay necesidad de preocuparse por eso.

Pieter Goosen Pieter Goosen
20 may 2014 16:00:56

@PieterGoosen El problema del OP es sobre este parámetro de versión que impide que se cargue la versión actual de CSS. Muy preocupante. Entonces, ¿por qué está ahí y cómo podemos eliminarlo?

Ralf Ralf
30 ago 2024 17:35:03
Todas las respuestas a la pregunta 5
1

En twentyfourteen, prueba colocando esto en tu tema hijo:

function add_require_scripts_files() {
 wp_enqueue_style('twentyfourteen-style', get_stylesheet_directory_uri().'/style.css', array(), '1.0.0', "all");        
}
add_action( 'wp_enqueue_scripts', 'add_require_scripts_files' );

Esto reemplazará la hoja de estilos original con tu propia versión. Si estás usando un tema padre diferente, revisa la etiqueta original wp_enqueue_style para style.css y duplica esa etiqueta dentro de tu tema hijo. Tendrás que cambiar el 1.0.0 por otro número cada vez que hagas un cambio (así que es mejor para entornos de producción donde no haces cambios con frecuencia).

Para eliminar completamente la versión de los scripts y estilos, prueba esto:

// remueve la etiqueta de versión WP de scripts y estilos, mejor para entornos de desarrollo
// por Adam Harley https://wordpress.org/support/topic/enqueueregister-script-remove-version
add_filter( 'script_loader_src', 'remove_src_version' );
add_filter( 'style_loader_src', 'remove_src_version' );
function remove_src_version ( $src ) {
  global $wp_version;
  $version_str = '?ver='.$wp_version;
  $version_str_offset = strlen( $src ) - strlen( $version_str );
  if( substr( $src, $version_str_offset ) == $version_str )
    return substr( $src, 0, $version_str_offset );
}
27 sept 2014 05:46:23
Comentarios

Este código mata mi sitio. ¿Quizás solo para versiones antiguas de WP?

Ralf Ralf
30 ago 2024 17:37:11
0

Agregar la siguiente función en el 'functions.php' de un tema hijo que usé con X me ayudó mucho en una situación similar.

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(), NULL, filemtime( get_stylesheet_directory() . '/style.css' ) );
}

Solo no olvides eliminar esto antes de lanzar tu sitio web en vivo.

También considera las funciones de caché de tu proveedor de hosting para que esta actualización surta efecto.

Según el autor:

... es la mejor manera de incluir una hoja de estilos de tema hijo en WordPress combinado con filemtime() para forzar a los navegadores a cargar nuevas versiones de los archivos css. No usé filemtime() para el parent-style ya que nunca lo modifico y por lo tanto filemtime() solo consumiría recursos innecesariamente.

Fuente: Comentario de Daniel del 22 de octubre de 2014 en el artículo Prevenir el almacenamiento en caché de CSS: https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141

28 oct 2015 19:35:38
1

Sin ver el sitio no podemos ayudar a diagnosticar el problema, pero una ocurrencia común es que el CSS del tema principal tenga prioridad sobre el CSS del tema hijo. Puedes anular esto usando la etiqueta !important, por ejemplo:

#element {
 color:#fff !important;
}

La etiqueta important marca ese CSS como prioritario sobre cualquier otro archivo CSS que tenga la misma línea de CSS

Indícanos la URL y si esto te ayuda

20 may 2014 15:59:22
Comentarios

No creo que !important sea el problema, pero aquí está mi URL:-http://www.peterswebservices.co.uk/ Además, cuando uso el inspector en Google Chrome y profundizo en el archivo CSS, muestra una versión anterior sin los últimos cambios.

user1199360 user1199360
20 may 2014 16:06:50
1

Acabo de tener el mismo problema y resultó que mi nuevo proveedor de hosting tenía algún tipo de caché activado por defecto. Fui al panel de control y limpié la caché, y entonces comenzó a servir correctamente el archivo style.css correcto.

El parámetro ?ver=3.9.1 resultó ser una falsa pista (al menos en mi caso). Después de limpiar la caché, seguía mostrando ?ver=3.9.1, el cual no aparece en ningún lugar de mi archivo css, pero todo funciona correctamente.

11 jul 2014 09:16:42
Comentarios

El ?ver=3.9.1 es agregado automáticamente por WordPress. Esta es la versión actual de WordPress y no tiene nada que ver con tu tema :-)

Pieter Goosen Pieter Goosen
11 jul 2014 09:52:11
0

Tuve el mismo problema y lo solucioné de una manera diferente a la predeterminada.

Primero localicé el archivo que necesitaba cambiar:

wp-includes\theme.php

Hay una función llamada get_stylesheet_uri

Mi función se ve así:

function get_stylesheet_uri() {
    $time = time();
    $stylesheet_dir_uri = get_stylesheet_directory_uri();
    $stylesheet_uri = $stylesheet_dir_uri . '/style.css?v='.$time;
    /**
     * Filtra el URI de la hoja de estilos del tema actual.
     *
     * @since 1.5.0
     *
     * @param string $stylesheet_uri     URI de la hoja de estilos para el tema/hijo actual.
     * @param string $stylesheet_dir_uri URI del directorio de la hoja de estilos para el tema/hijo actual.
     */
    return apply_filters( 'stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri );
}
7 sept 2016 17:18:11