Ich mache es gerade mit dem folgenden Code:
function uw_load_scripts() {
// De-register the built in jQuery
wp_deregister_script('jquery');
// Register the CDN version
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false);
// Load it in your theme
wp_enqueue_script( 'jquery' );
}
add_action( 'wp_enqueue_scripts', 'uw_load_scripts' );
Das funktioniert, aber sollte ich das für alle tun, so oder für alle außer dem Administrator (damit das Backend die WordPress-Version verwendet?):
if (function_exists('load_my_scripts')) {
function load_my_scripts() {
if (!is_admin()) {
wp_deregister_script( 'jquery' );
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', array(), null, false);
wp_enqueue_script('jquery');
}
}
}
add_action('init', 'load_my_scripts');
Diese Version funktioniert eigentlich gar nicht, ich bekomme die WordPress jQuery-Version und nicht die Google.
Sollte ich daher die in WordPress enthaltene jQuery abmelden?
Wie füge ich meine eigenen Skripte (Slider-Skripte, modernizr und meine eigenen custom.js) auf die richtige Weise hinzu? Ich denke, ich sollte dies auch über functions.php tun und nicht wie jetzt im Header, aber ich bin mir nicht sicher, wie ich das tun würde.
wp_enqueue_script()
Aufrufen ist ein Syntaxfehler aufgetreten .$in_footer
Parameter in Ihrem Aufruf von auf truewp_enqueue_script()
.Ich hoffe, das hilft.
wp_enqueue_scripts
Weitere Informationen finden Sie im Codex .init
zu enqueue . Verwenden Siewp_enqueue_scripts
für Front-End-Sachen undadmin_enqueue_scripts
für die Admin-Seite. Sie könneninit
jedoch Skripte registrieren .wp_enqueue_scripts
nur am Front-End (und nicht auf der Anmeldeseite) ausgelöst, sodass Sie nicht überprüfen müssenis_admin()
.Sofern Sie keinen bestimmten Grund haben, etwas anderes zu tun, würde ich vorschlagen, Skripte zu registrieren und in eine Warteschlange zu stellen, die
functions.php
für Themen oder in einem Plug-In verwendet werden. Sie sagen einfach:Wenn das Ziel ist, ein Skript
wp_enqueue_script
in die Warteschlange zu stellen, wenn ein Shortcode verwendet wird, möchten Sie ihn möglicherweise im Shortcode-Rückruf verwenden, um ihn nur bei Bedarf in die Warteschlange zu stellen (dies druckt ihn seit 3.3 in der Fußzeile aus ).Sie sollten die vorhandene jQuery auf der Administratorseite nicht erneut registrieren. Sie können etwas brechen: D.
Plug-Ins sollten die vorhandene jQuery nicht erneut registrieren.
Sie sollten die Vor- und Nachteile einer erneuten Registrierung von jQuery abwägen. Zum Beispiel können einige Plug-Ins beschädigt werden, wenn Sie eine alte Version registrieren (möglicherweise nicht jetzt, aber in Zukunft ...)
quelle
Faire Warnung: Das Abmelden der WP-Paketversion von jQuery zugunsten Ihrer eigenen kann zu Problemen führen, insbesondere wenn Sie nicht besonders vorsichtig sind, um sicherzustellen, dass Sie die Version ändern, auf die Sie zeigen, wenn WP ihre Version aktualisiert. Dies gilt doppelt für Plugins, die häufig (oder zumindest häufig) ihre Plugins schreiben, um maximale Kompatibilität mit der WP-Version von jQuery zu gewährleisten.
Das heißt, Ihre erste Version ist richtig - es ist süchtig nach
wp_enqueue_scripts
. Ihre zweite Funktion ist mit verknüpftinit
, weshalb sie möglicherweise nicht richtig funktioniert.Fügen Sie auf ähnliche Weise Ihre eigenen Skripte hinzu:
Ich gehe hier davon aus, dass Sie Skripte aus einem
js
Verzeichnis in Ihrem aktuellen Themenverzeichnis laden . Ändern Sie den URI-Parameter, wenn dies nicht der Fall ist. Der dritte Parameterarray( 'jquery' )
besagt, dass dies vonbbg-scripts
abhängtjquery
und daher später geladen werden sollte. Weitere Informationen finden Sie unter https://codex.wordpress.org/Function_Reference/wp_enqueue_script .quelle
Das wird nichts ... Ich vermute, Sie meinen
In Ihrem Beispiel wird die Funktion load_my_scripts nur geladen, wenn sie bereits vorhanden ist (was nicht der Fall ist und wenn dies der Fall ist, wird ein Fehler verursacht).
quelle
Wenn Sie aus Performancegründen jquery- und andere Core-js-Dateien von einem CDN laden möchten, stellen Sie sicher, dass Sie dieselbe Version laden, um zu verhindern, dass böse Dinge mit Core- und Plugin-Funktionen passieren. So was:
quelle
Nachdem ich alle verschiedenen Methoden zum Laden von jquery überprüft hatte (nicht nur in diesem Beitrag), stellte ich fest, dass keine von ihnen alle diese Methoden ausführt:
Es gibt viele alternative Versionen, die einige davon in der Liste tun, aber nicht alle. Deshalb habe ich meine Version geschrieben, indem ich einige der bereits verfügbaren Methoden gekämmt und modifiziert habe. Hier ist es:
Um Bandbreite zu sparen und Google nicht jedes Mal zu pingen, wenn die Seite neu geladen wird, wird mithilfe der Wordpress Transient-API 5 Minuten lang daran erinnert, ob Google CDN online ist oder nicht.
quelle