web-dev-qa-db-fra.com

Impossible pour Child Theme de charger la dernière version de style.css

J'utilise un thème enfant correctement configuré. Mais je ne parviens pas à faire en sorte que les modifications du style Child.cit thème.css soient reflétées 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 sont plus efficaces que les fichiers parents.

J'ai remarqué que, dans la vue Sourse, il place un numéro de version à la fin de la feuille de style, comme suit: - 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 versioning de la feuille de style, alors pourquoi est-elle insérée automatiquement lorsque je ne le souhaite pas.

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

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

9
user1199360

Dans vingt-quatre ans, essayez de mettre ceci 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' );

Ceci remplacera la feuille de style originale mais avec votre propre version. Si vous utilisez un thème parent différent, examinez l'étiquette d'origine wp_enqueue_style pour style.css et dupliquez cette étiquette dans votre thème enfant. Vous devrez remplacer 1.0.0 par un autre numéro chaque fois que vous apporterez une modification (il est donc préférable que vous utilisiez des environnements de production dans lesquels vous n'effectuez pas souvent des modifications).

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

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

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

Juste ne pas oublier pour le supprimer avant de lancer votre site Web en direct.

Pensez également aux fonctionnalités de mise en cache de votre fournisseur de services d’hébergement pour que cette mise à jour produise ses effets.

_ {Selon l'auteur:

... c'est le meilleur moyen d'inclure une feuille de style enfanthe 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 n’y ai jamais touché et par conséquent, filemtime () ne ferait que gaspiller des ressources.

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

3
bubencode

Sans consulter le site, nous ne pouvons pas aider à diagnostiquer le problème, mais le thème principal css ayant la priorité sur le css enfant est une occurrence courante. Vous pouvez le remplacer en utilisant la balise !important, par exemple.

#element {
 color:#fff !important;
}

La balise importante indique que css est prioritaire par rapport à tout autre fichier css avec la même ligne de css

Faites-nous savoir l'URL et si cela aide

0
Gareth Gillman

Je viens d'avoir le même problème, et il s'est avéré que mon nouvel hôte avait une sorte de cache activé par défaut. Je suis allé à mon panneau de commande et vidé le cache, et il a ensuite correctement servi le bon fichier style.css.

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

0
Kit Johnson

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

J'ai d'abord trouvé le fichier que je dois changer:

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