Impossible d'obtenir le thème enfant pour charger la dernière version de style.css

9

J'utilise un thème enfant correctement configuré. Mais je ne peux tout simplement pas faire en sorte que les modifications apportées au thème enfant style.css se reflètent dans le site. J'ai essayé de vider le cache du navigateur un million de fois et cela ne fonctionne pas!

J'ai créé des fichiers de modèles enfants et ils remplacent très bien ceux des parents.

J'ai remarqué en vue sourse qu'il met un numéro de version à la fin de la feuille de style comme ceci: - style.css? Ver = 3.9.1 même si je n'ai pas créé de version!

Dans un autre site que j'ai créé, il n'y a pas de version de la feuille de style, alors pourquoi est-elle insérée automatiquement alors que je ne veux pas qu'elle soit définie.

Comment puis-je le forcer à utiliser la version la plus récente du fichier Child style.css et à ne pas le versionner?

Voici l'url de mon site: - http://www.peterswebservices.co.uk/

user1199360
la source
1
La mise en cache du navigateur est la possibilité la plus évidente, mais la mise en cache du serveur peut avoir le même effet, tout comme les «accélérateurs» Web que certains FAI et sites indépendants proposent.
s_ha_dum
La partie de la version que vous voyez n'est que la version actuelle de wordpress qui est automatiquement ajoutée par wordpress. Pas besoin de s'inquiéter à ce sujet.
Pieter Goosen

Réponses:

4

À vingt-quatorze ans, essayez de mettre cela dans le thème de votre enfant:

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

Cela remplacera la feuille de style d'origine mais avec votre propre version. Si vous utilisez un thème parent différent, regardez l'étiquette wp_enqueue_style d'origine pour style.css et dupliquez cette étiquette dans votre thème enfant. Vous devrez remplacer 1.0.0 par un autre nombre chaque fois que vous apportez une modification (il est donc préférable pour les environnements de production où vous n'effectuez pas de modifications si souvent).

Pour supprimer la version des scripts et des styles tous ensemble, essayez ceci:

// 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 );
}
whoaitsaimz
la source
4

L'ajout de la fonction ci-dessous dans le 'functions.php' d'un thème enfant que j'ai utilisé avec X m'a beaucoup aidé dans une situation similaire.

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

Il suffit de ne pas oublier d'enlever cela avant le lancement de votre site en direct.

Faites également attention aux fonctionnalités de mise en cache de votre fournisseur de services d'hébergement pour que cette mise à jour soit effective.

Selon l'auteur :

... c'est le meilleur moyen d'inclure une feuille de style de thème enfant dans WordPress combinée à filemtime () pour forcer les navigateurs à charger de nouvelles versions des fichiers css. Je n'ai pas utilisé filemtime () pour le style parent car je ne le touche jamais et donc filemtime () ne ferait que gaspiller des ressources.

Source : Commentaire de Daniel du 22 octobre 2014 sur l'article Empêcher la mise en cache CSS : https://css-tricks.com/snippets/wordpress/prevent-css-caching/#comment-1586141

bubencode
la source
0

Sans voir le site, nous ne pouvons pas aider à diagnostiquer le problème, mais un problème courant est que le thème principal css a priorité sur le css enfant, vous pouvez annuler cela en utilisant la !importantbalise par exemple

#element {
 color:#fff !important;
}

La balise importante marque ce CSS comme prioritaire sur tout autre fichier CSS avec la même ligne de CSS

Faites-nous savoir l'URL et si cela aide

Gareth Gillman
la source
Je ne pense pas! Le problème est important, mais voici mon URL: - peterswebservices.co.uk Aussi lorsque j'utilise l'inspecteur sur Google Chrome et que je descends dans le fichier css, il affiche une version précédente sans les dernières modifications.
user1199360
0

J'ai juste eu le même problème, et il s'est avéré que mon nouvel hôte avait une sorte de mise en cache activée par défaut. Je suis allé dans mon panneau de contrôle et j'ai vidé le cache, puis il a correctement servi le bon fichier style.css.

Le? Ver = 3.9.1 s'est avéré être un hareng rouge (au moins pour moi). Après avoir vidé le cache, il dit toujours? Ver = 3.9.1, qui ne se trouve nulle part dans mon fichier css, mais tout fonctionne bien.

Kit Johnson
la source
1
Le ?ver=3.9.1est automatiquement ajouté par wordpress. Ceci est la version actuelle de wordpress et n'a rien à voir avec votre thème :-)
Pieter Goosen
0

J'ai eu le même problème et je l'ai résolu d'une autre manière que celle par défaut.

J'ai d'abord localisé le fichier que je dois modifier:

wp-includes\theme.php

Il existe une fonction appelée get_stylesheet_uri

Ma fonction ressemble à ceci:

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 );
}
GorgE_MirO
la source