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


9

Estoy usando un tema infantil configurado correctamente. Pero no puedo obtener cambios en el tema Child style.css para que se reflejen en el sitio. ¡Intenté vaciar el caché del navegador un millón de veces y no funciona!

He creado archivos de plantilla secundarios y anulan bien a los padres.

He notado en vista que pone un número de versión al final de la hoja de estilo como este: - style.css? Ver = 3.9.1 ¡aunque no haya creado ninguna versión!

En otro sitio que creé no hay versiones de la hoja de estilo, entonces, ¿por qué se coloca automáticamente cuando no quiero que se configure?

¿Cómo puedo forzarlo a usar la versión más actualizada del archivo Child style.css y no versionarlo?

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


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

La parte de la versión que está viendo es solo la versión actual de WordPress que WordPress agrega automáticamente. No hay que preocuparse por eso.
Pieter Goosen,

Respuestas:


4

En veinticuatro, intente poner esto en el tema de su 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 estilo original pero con su propia versión. Si está utilizando un tema principal diferente, mire la etiqueta original wp_enqueue_style para style.css y duplique esa etiqueta dentro del tema secundario. Tendrá que cambiar 1.0.0 a otro número cada vez que realice un cambio (por lo que es mejor para entornos de producción donde no realiza cambios con tanta frecuencia).

Para eliminar la versión de scripts y estilos, intente esto:

// remove WP version tag from scripts and styles, best for dev environments
// by 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 );
}

4

Agregar la función a continuación en 'functions.php' de un tema secundario que utilicé 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' ) );
}

Simplemente no olvide eliminar esto antes de lanzar su sitio web en vivo.

También tenga en cuenta las características de almacenamiento en caché de su proveedor de servicios de alojamiento para hacer que esta actualización tenga efecto.

Según el autor :

... es la mejor manera de incluir una hoja de estilo childtheme en WordPress combinada con filemtime () para forzar a los navegadores a cargar nuevas versiones de los archivos css. No utilicé filemtime () para el estilo principal, ya que nunca lo toco y, por lo tanto, filemtime () solo desperdiciaría recursos.

Fuente : Comentario de Daniel a partir del 22 de octubre de 2014 al artículo Prevent CSS Caching : https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141


0

Sin ver el sitio, no podemos ayudar a diagnosticar el problema, pero una ocurrencia común es que el tema principal css tiene prioridad sobre el css secundario, puede anular esto usando la !importantetiqueta, por ejemplo

#element {
 color:#fff !important;
}

La etiqueta importante marca esa CSS como prioridad sobre cualquier otro archivo CSS con la misma línea de CSS

Háganos saber la url y si esto ayuda


No creo! Importante es el problema, pero aquí está mi url: - peterswebservices.co.uk También cuando uso el inspector en Google Chrome y profundizo en el archivo CSS, muestra una versión anterior sin los últimos cambios.
user1199360

0

Simplemente tuve el mismo problema, y ​​resultó ser mi nuevo host que tenía algún tipo de almacenamiento en caché activado de forma predeterminada. Fui a mi panel de control y enjuagué el caché, y luego sirvió correctamente el archivo style.css correcto.

El? Ver = 3.9.1 resultó ser un arenque rojo (al menos para mí). Después de vaciar el caché, todavía dice? Ver = 3.9.1, que no se encuentra en ningún lugar de mi archivo css, pero todo funciona bien.


1
El ?ver=3.9.1se agrega automáticamente por WordPress. Esta es la versión actual de WordPress y no tiene nada que ver con su tema :-)
Pieter Goosen

0

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

Primero localicé el archivo que necesito 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;
    /**
     * Filter the URI of the current theme stylesheet.
     *
     * @since 1.5.0
     *
     * @param string $stylesheet_uri     Stylesheet URI for the current theme/child theme.
     * @param string $stylesheet_dir_uri Stylesheet directory URI for the current theme/child theme.
     */
    return apply_filters( 'stylesheet_uri', $stylesheet_uri, $stylesheet_dir_uri );
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.