web-dev-qa-db-fra.com

Les modifications apportées aux chemins de feuille de style mis en file d'attente/enregistrés ne sont pas mises à jour - pourquoi?

J'essaie de modifier un thème WordPress afin qu'il ajoute un numéro de version à une feuille de style particulière. Tout cela est fait sur une machine de développement locale, testée sur un serveur de transfert également. Suivez les instructions ici: https://www.mojowill.com/developer/get-your-wordpress-css-changes-noticed-immediately/ , J'ai ajouté filemtime( get_template_directory() . '/css/main.css' ) dans les arguments transmis via wp_register_style

De:

wp_register_style('style', get_template_directory_uri() . '/css/style.css', array(), '', 'all');

à

wp_register_style('style', get_template_directory_uri() . '/css/style.css', array(), 'filemtime( get_template_directory_uri() . '/css/style.css'', 'all');

Pas de savon. En regardant la source de la page rendue, je vois que le lien de la feuille de style n’a pas de version ajoutée.

J'ai essayé d'extraire la fonction filemtime de l'emplacement $ver et de la remplacer par une valeur statique telle que 1.0, et cela n'a pas fonctionné non plus. Enfin, j'ai ignoré l'argument $ver et modifié le chemin d'accès à un fichier versionné, comme suit:

wp_register_style('style', get_template_directory_uri() . '/css/style.css?ver=1.0', array(), '', 'all');

Toujours rien. Pourquoi WordPress refuserait-il de reconnaître ces mises à jour? Aucune mise en cache côté serveur ni aucun plug-in que je pourrais imaginer n'influenceraient ce processus. Y a-t-il quelque chose de très simple qui me manque?

Merci beaucoup

James

edit: Voici l'intégralité du bloc de code correspondant.

function minikit_register_js_and_css() {
    if (!is_admin()) {  
        wp_register_style('style', get_template_directory_uri() . '/css/style.css?ver=1.1', array(), '', 'all');
        wp_enqueue_style('style');
    }
}
1
jamesfacts

J'ai enfin identifié le problème. Le thème sur lequel je travaillais utilisait le démarreur de thème Minikit , qui comporte une fonction qui supprime les numéros de version.

function minikit_remove_wp_ver_css_js($src) { if (strpos($src, 'ver=')) $src = remove_query_arg('ver', $src); return $src; }

Naturellement, les numéros de version sont revenus une fois que j'ai arrêté d'appeler cette fonction.

2
jamesfacts

Assurez-vous de wp_enqueue_style ('unique-style-name') .

add_action( 'wp_enqueue_scripts', 'register_plugin_styles' );

function register_plugin_styles() {
    wp_register_style( 'unique-style-name', plugins_url( 'my-plugin/css/plugin.css' ) );
    wp_enqueue_style( 'unique-style-name' );
}
0
jgraup

Quelques possibilités:

  • Essayez un identifiant différent de 'style', rendez-le unique à votre plugin, quelque chose comme 'myplugin_styles'
  • Est-ce que wp_head() est appelé sur votre fichier header.php? Peut-être que le code de la feuille de style est codé en dur sur le modèle.
  • Exécutez-vous des plugins de mise en cache? Si c'est le cas, désactivez-les.
  • Celui-ci est plus compliqué, mais êtes-vous sûr qu'il s'agit de la seule déclaration wp_register_style sur votre plugin? Peut-être est-il à nouveau défini ultérieurement sur le même fichier ou sur un autre fichier.

Ce sont les premières idées qui me viennent à l’esprit. J'espère que ça aide

0
Felix