it-swarm.dev

Also verknüpfen Sie externe jQuery/Javascript-Dateien mit WordPress

Also benutze ich Starkers, um mein nächstes WP Theme zu erstellen, und ich bin auf ein kleines Problem gestoßen. Ich habe meine eigene Version von jQuery in die header.php-Datei aufgenommen, aber als ich meine Site mit Firebug inspizierte, bemerkte ich es jquery wurde zweimal heruntergeladen, ich habe ein bisschen gegraben und festgestellt, dass ich nicht nur die Datei einbezog, sondern auch die Funktion wp_head().

Bei dem Versuch, das Problem zu beheben, bemerkte ich einen Kommentar in der Header-Datei, der aus dem Twenty Ten-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 jeder anderen Datei gesetzt werden muss, die sie verwenden möchte, und dass wp_head() das Letzte im <head> -Element sein sollte. Ich bin jetzt etwas verwirrt Ich frage mich, ob ich wp_head() oben platzieren soll, damit die in WP enthaltene jQuery-Datei für alle meine Plugins verwendet wird, auch wenn darin angegeben ist, dass dies nicht der Fall ist.

Ich habe die jQuery-Zeile in der Funktion wp_head() auskommentiert, aber sie ist für die Admin-Seite erforderlich, sodass ich sie zurücksetzen musste.

Ich würde auch gerne die Google CDN-Version von jQuery verwenden (zumindest experimentieren), aber ich möchte sie nicht zweimal einschließen!

Ich hoffe, Sie verstehen, was ich zu erklären versuche. Vorschläge, wie ich dieses Problem lösen kann, sind sehr willkommen. Ich würde mich auch über Ratschläge freuen, wie Sie mit Ihren JavaScript-Dateien mit der Header-Datei umgehen.

Vielen Dank!

15
Ben Everard

Nach dem Wortlaut Ihrer Frage müssen Sie Skripte hinzufügen, indem Sie <script>-Tags in Ihre Vorlage schreiben. Fügen Sie Ihre eigenen Skripte über wp_enqueue_script() im functions.php Ihrer Vorlage hinzu, indem Sie die Abhängigkeiten von jQuery entsprechend einstellen, und 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');

Weitere Informationen finden Sie auf der Codex-Seite .

9

Ich schlage vor, einen Blick auf 5 Tipps zur Verwendung von jQuery mit WordPress zu werfen. Unter anderem wird der Code angezeigt, 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 sich auch das Plugin Use Google Libraries ansehen.

7

Obwohl @tnorthcutt richtig ist, dass Sie die native JQuery von WP ordnungsgemäß entpacken sollten, wenn Sie Ihre eigene JQuery laden möchten, treten beim Laden einer anderen JQuery-Version, die WP enthält, mit Sicherheit Probleme auf. Sowohl Core als auch Plugins setzen voraus, dass sie vorhanden sind. Wenn Sie Ihr Thema also nicht jedes Mal, wenn WP aktualisiert wird, mit der neuesten Abfrage aktualisieren, kann Ihre Website beschädigt werden.

Der folgende Code stellt sicher, dass Ihr Design immer die richtige Version von jquery lädt, indem Sie zuerst nachsehen, welche Version WP verwendet, und diese dann von Google laden:

$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');
1
cjbj