Twenty Twelve Versionierung

Ich mache ein Child-Theme für TwentyTwelve, aber mein Host speichert meine Dateien im Cache, daher sehe ich nicht die Änderungen, die ich an meiner style.css-Datei vorgenommen habe.

Gibt es eine Möglichkeit, das Stylesheet für mein untergeordnetes Thema zu versionieren?

Wie fügt Twenty Twelve sogar das Stylesheet hinzu? Ich sehe es nicht in header.php.

Vielen Dank

Solutions Collecting From Web of "Twenty Twelve Versionierung"

Wie es in WordPress NICHT gemacht wird

Das folgende Beispiel ist das Gegenteil davon, wie man es machen sollte. Schlechte Praxis folgende:

 

Dies ist ein weiteres Beispiel, wie Sie es nicht tun sollten:

  

Mach es richtig

WP verwendet eine “Abhängigkeiten” API zum Verwalten von Skript- und Style-Dateien. Dies bedeutet, dass Sie

  1. Registrieren
  2. Enqueue
  3. (optional und nur für Skripts) Localize

Dies bedeutet, dass Sie zuerst ein Skript für die weitere Verwendung registrieren und dann in die Warteschlange stellen. Auf diese Weise können Sie ein Stylesheet oder Skript in Ihrem übergeordneten Thema oder Plugin speichern und es später in die Warteschlange einreihen und es bei Bedarf auf Ihrer Webseite drucken.

So verhindern Sie das Zwischenspeichern

Auch diese API hat ein nettes kleines Argument für Versionen . Das bedeutet, dass Sie verschiedene Möglichkeiten haben, Ihren Browser- oder Server-Cache zu aktualisieren, da die Version beim Laden der Datei zum Abfrage-String hinzugefügt wird:

  • Fügen Sie bei jedem Update manuell eine neue Versionszeichenfolge hinzu
  • Verwenden Sie die functionen date() oder time() (oder ähnliche DateTime) zur permanenten Aktualisierung
  • Verwenden Sie filemtime( get_stylesheet_directory().'style.css' ) um ** nur die Version zu ändern, wenn Sie ein Update durchgeführt haben.
  • Und schließlich gibt es die Technik des “dateibasierten Cache-Busting” , die den Dateinamen ändert, wenn Änderungen vorgenommen wurden. Es benötigt auch einige .htaccess Modifikationen.

Beispiel

Dieser Artikel stammt von einem Plugin, das ich gerade entwickle:

 $file = 'js/chained_selection.js'; wp_register_script( $this->handle ,plugin_dir_url( __FILE__ ).$file ,array( 'jquery', ) ,filemtime( plugin_dir_path( __FILE__ ).$file ) ,true ); wp_enqueue_script( $this->handle ); wp_localize_script( $this->handle ,"{$this->handle}_obj" ,array( 'ajaxurl' => admin_url( 'admin-ajax.php' ) ,'nonce' => wp_create_nonce( $this->ajax_nonce_val ) ,'action' => $this->action ) ); 

Wann das Stylesheet / Script geladen werden soll

Normalerweise werden die register / enqueue / localize-statementen einfach in eine function oder classnmethode eingeschlossen. Damit andere am richtigen Punkt einspringen können, sind folgende Hooks für Stile und Skripts erforderlich:

  • admin_enqueue_script // Admin-Benutzeroberfläche
  • wp_enqueue_script // Themen
  • login_enqueue_script // login_enqueue_script

Ok, also was ich getan habe, um es zu beheben, füge eine functions.php zu meinem Child-Theme hinzu und fügte folgendes hinzu:

 < ?php function my_theme_styles() { wp_enqueue_style('my-theme-style', get_stylesheet_directory_uri(). '/style.css', false, date('h:i:s')); } add_action('wp_print_styles', 'my_theme_styles'); 

Es lädt also das Stylesheet zweimal, was nicht ideal ist, aber während der Entwicklung der Site hilft es, das Stylesheet frisch zu halten.