it-swarm.com.de

JQuery in WordPress einreihen

Ich baue mein erstes Theme in Wordpress 3.4.1 von Grund auf auf und weiß, dass Wordpress bereits die neueste Version der JQuery über Google hat. Ich habe über Probleme gelesen, wenn das Skript nicht richtig aufgerufen wird, also möchte ich versuchen, alles so nah wie möglich an der empfohlenen Codierung zu halten. Ich möchte sicherstellen, dass das Skript geladen wird, von dem ich glaube, dass es von dem unten stehenden Skript PHP in der Datei functions.php ausgeführt wird (entnommen aus dem Wordpress-Codex).

<?php
function my_scripts_method() {
wp_enqueue_script( 'jquery' );
}

Ich möchte im Grunde ein benutzerdefiniertes Menü mit JQuery haben. Ist es also nur eine Aufgabe, das zu aktivierende Skript in den Header oder den Abschnitt PHP zu stellen?

Auch wenn ich ein anderes Skript in die Warteschlange stellen wollte, das noch nicht in Wordpress enthalten ist, füge ich einfach den folgenden PHP zum obigen Code in der Datei functions.php hinzu?

wp_register_script( 'jqueryexample', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');

Ich bin mit HTML und CSS einverstanden, aber PHP und Java ist für mich relativ neu, jede Hilfe wird sehr geschätzt.

Vielen Dank,

Ameise

1
Ant

Sie sind auf dem richtigen Weg, aber es fehlt ein Teil:

add_action('wp_enqueue_scripts', 'my_scripts_method');

mit add_action können Sie Code zu bestimmten Zeiten während des Ladens von Seiten/bestimmten Ereignissen ausführen. Die obige Aktion weist WP an, Ihre Funktion auszuführen, wenn die Skripte zum HTML-Kopfelement hinzugefügt werden. Ihre Funktion weist WP an, das jQuery-Skript hinzuzufügen.

Das gleiche gilt für das Registrieren eines neuen Skripts, jedoch mit einem anderen Hook:

add_action('wp_enqueue_scripts', 'my_register_script_method');

function my_register_script_method () {
    wp_register_script( 'jqueryexample', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');
}

Wenn Sie ein vorregistriertes Skript überschreiben, sollten Sie dieses Skript auch zuerst abmelden. Ich benutze so etwas wie den folgenden Code, um das jquery-Skript zu ersetzen (Anmerkung: Lies die 2. Änderung am Ende):

function my_register_script_method () {
    wp_deregister_script('jquery');
    wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');
}

Wo solltest du den Code hinstellen? Wenn der Code für das Thema spezifisch ist, sollten Sie ihn in die Datei functions.php in Ihrem Themenordner einfügen. Wenn Sie den Code für mehrere Themen wiederverwenden, ist es einfacher, ein Plugin mit allen gemeinsam genutzten Codes zu verwalten.

Bearbeiten: Wie Stephen Harris unten bemerkt, können Sie seit WP 3.3 auch wp_enqueue_scripts verwenden, nachdem wp_head ausgelöst wurde, beispielsweise in Shortcodes oder Widgets. Das js wird dann in die Fußzeile geladen.

Bearbeiten 2: Für jQuery und andere von Google gehostete Bibliotheken wird empfohlen, dass Sie http://wordpress.org/extend/plugins/use-google-libraries/ verwenden. Lesen Sie die Kommentare für eine Motivation von Otto.

2
W van Dam

Sie müssen wp_enqueue_script verwenden, um das Skript für Ihr Thema zu laden. Die Funktion wp_register_script registriert das Skript nur mit einem Schlüsselwort.

wp_register_script( 'jqueryexample', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');

Dadurch wird einfach ein neues Skript mit dem Namen jqueryexample registriert, und Sie können dieses Skript bei Bedarf mit der Funktion wp_enqueue_script laden.

Hier ist ein Beispielcode zum Laden eines bereits registrierten Skripts, d. H. JQuery, und eines neuen eigenen Skripts, d. H. JQuery Exmple

<?php
function wpse_60056_load_scripts() {
    wp_enqueue_script( 'jquery' );
    wp_register_script( 'jqueryexample', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js');
    wp_enqueue_script( 'jqueryexample' );

}    
add_action('wp_enqueue_scripts', 'wpse_60056_load_scripts');
?>

Sie können jedoch nur die Funktion wp_enqueue_scripts verwenden, um ein entferntes JavaScript zu laden. Hier ein Beispiel:

wp_enqueue_script('jqueryexample','http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jqueryexample.min.js'); 
3
amit