Frage

Ich benutze Starker, um mein nächstes WP -Thema zu stützen, auf das ich auf ein kleines Problem gestoßen bin. Ich habe meine eigene Version von JQuery in die enthalten header.php Datei, aber als ich meine Website mit Firebug inspizierte, bemerkte ich, dass JQuery zweimal heruntergeladen wurde, ein bisschen gegraben und bemerkte, dass ich nicht nur die Datei einbezogen habe, sondern auch das auch die wp_head() Funktion.

Als ich versuchte, das Problem zu beheben, bemerkte ich einen Kommentar in der Header -Datei, von dem stammte, dass er aus dem Twenty Top -Thema stammte:

/* Always have wp_head() just before the closing </head>
 * tag of your theme, or you will break many plugins, which
 * generally use this hook to add elements to <head>, such 
 * as styles, scripts, and meta tags
 */

Hier ist mein Problem, ich habe den Eindruck, dass die JQuery -Datei vor einer anderen Datei festgelegt werden muss, die sie verwenden möchte, und das wp_head() sollte das Letzte in der sein <head> Element, ich bin jetzt etwas verwirrt, da ich mich frage wp_head() Oben, so dass die WP -JQuery -Datei für alle meine Plugins verwendet wird, obwohl dies nicht zu tun ist.

Ich habe die jQuery -Linie in der kommentiert wp_head() Funktion, aber es ist für die Administratorseite erforderlich, also musste ich sie zurücksetzen.

Ich würde auch gerne (zumindest experimentieren) mit der Google CDN -Version von JQuery verwenden, möchten sie aber nicht zweimal einfügen!

Ich hoffe, Sie verstehen, was ich zu erklären versuche. Vorschläge, wie ich dieses Problem lösen kann, wären am meisten geschätzt. Ich würde auch einen Rat schätzen, wie Sie Ihre JavaScript -Dateien mit der Header -Datei umgehen.

Vielen Dank!

War es hilfreich?

Lösung

Aus dem Wortlaut Ihrer Frage müssen Sie durch Schreiben Skripte hinzufügen <script> Tags in Ihrer Vorlage. Fügen Sie Ihre eigenen Skripte über hinzu wp_enqueue_script() in Ihrer Vorlage Ihrer functions.php, angemessene Abhängigkeiten von JQuery und angemessen festlegen wp_head() Fügt die Skripte für Sie hinzu.

function my_scripts() {
    wp_enqueue_script( 'my-sweet-script', get_bloginfo('template_directory') . '/script.js', array('jquery') );
}
add_action('template_redirect', 'my_scripts');

Siehe das Codex Seite Für mehr Information.

Andere Tipps

Ich schlage vor, einen Blick darauf zu werfen 5 Tipps für die Verwendung von JQuery mit WordPress. Unter anderem zeigt es den Code, der zum Laden von JQuery aus der Google -Bibliothek erforderlich ist:

function my_init() {
    if (!is_admin()) {
        // comment out the next two lines to load the local copy of jQuery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2');
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'my_init');

Sie können auch das überprüfen Verwenden Sie Google Libraries Plugin.

Obwohl @tnorthcutt richtig ist, dass Sie die native JQuery von WP richtig entfernen sollten, wenn Sie Ihre eigenen laden möchten, werden Sie mit Sicherheit auf Probleme stoßen, wenn Sie eine andere JQuery -Version als WP Core laden. Sowohl Kern- als auch Plugins verlassen sich darauf, dass es dort ist. Wenn Sie Ihr Thema also nicht jedes Mal, wenn WP aktualisiert wird, mit dem neuesten JQuery aktualisieren, kann Ihre Website brechen.

Der folgende Code sorgt dafür, dass Ihr Thema immer die richtige Version von JQuery lädt, indem zuerst nach der Version von WP nachgedacht wird, und diese dann von Google geladen werden:

$wp_jquery_version = $GLOBALS['wp_scripts']->registered['jquery-core']->ver;
$jquery_version = ( $wp_jquery_version == '' ) ? '1.8.3' : $wp_jquery_version; // fallback, just in case 
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/'. $jquery_version .'/jquery.min.js', $jquery_version, false );
wp_enqueue_script('jquery');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top