Verwenden Sie wp_enqueue_script()
in Ihrem Thema
Die grundlegende Antwort ist die Verwendung wp_enqueue_script()
in einem wp_enqueue_scripts
Hook für das Front-End admin_enqueue_scripts
für den Administrator. Es könnte ungefähr so aussehen (was davon ausgeht, dass Sie aus der functions.php
Datei Ihres Themas aufrufen ; beachten Sie, wie ich auf das Stylesheet-Verzeichnis verweise):
<?php
add_action( 'wp_enqueue_scripts', 'mysite_enqueue' );
function mysite_enqueue() {
$ss_url = get_stylesheet_directory_uri();
wp_enqueue_script( 'mysite-scripts', "{$ss_url}/js/mysite-scripts.js" );
}
Das sind die Grundlagen.
Vordefinierte und mehrfach abhängige Skripte
Angenommen, Sie möchten sowohl jQuery als auch jQuery UI Sortable aus der Liste der in WordPress enthaltenen Standardskripte einbeziehen und möchten, dass Ihr Skript davon abhängt. Ganz einfach, fügen Sie die ersten beiden Skripte mit den in WordPress definierten vordefinierten Handles ein und stellen Sie für Ihr Skript einen dritten Parameter bereit, zu wp_enqueue_script()
dem ein Array der von jedem Skript verwendeten Handles gehört.
<?php
add_action( 'wp_enqueue_scripts', 'mysite_enqueue' );
function mysite_enqueue() {
$ss_url = get_stylesheet_directory_uri();
wp_enqueue_script( 'mysite-scripts', "{$ss_url}/js/mysite-scripts.js", array( 'jquery', 'jquery-ui-sortable' ) );
}
Skripte in einem Plugin
Was ist, wenn Sie es stattdessen in einem Plugin tun möchten? Verwenden Sie die plugins_url()
Funktion, um die URL Ihrer Javascript-Datei anzugeben:
<?php
define( 'MY_PLUGIN_VERSION', '2.0.1' );
add_action( 'wp_enqueue_scripts', 'my_plugin_enqueue' );
function my_plugin_enqueue() {
wp_enqueue_script( 'my-script', plugins_url('/js/my-script.js',__FILE__), array('jquery','jquery-ui-sortable'), MY_PLUGIN_VERSION );
}
Versionierung Ihrer Skripte
Beachten Sie auch, dass wir oben unserem Plugin eine Versionsnummer gegeben und diese als 4. Parameter an übergeben haben wp_enqueue_script()
. Die Versionsnummer wird in der Quelle als Abfrageargument in der URL zum Skript ausgegeben und dient dazu, den Browser zum erneuten Herunterladen einer möglicherweise zwischengespeicherten Datei zu zwingen, wenn sich die Version ändert.
Laden Sie Skripte nur auf Seiten, auf denen sie benötigt werden
Die erste Regel der Webleistung besagt, dass HTTP-Anforderungen minimiert werden müssen. Sie sollten daher die Skripten nach Möglichkeit so beschränken, dass sie nur bei Bedarf geladen werden. Wenn Sie beispielsweise Ihr Skript nur im Admin-Bereich benötigen, beschränken Sie es admin_enqueue_scripts
stattdessen mit dem Hook auf Admin-Seiten :
<?php
define( 'MY_PLUGIN_VERSION', '2.0.1' );
add_action( 'admin_enqueue_scripts', 'my_plugin_admin_enqueue' );
function my_plugin_admin_enqueue() {
wp_enqueue_script( 'my-script', plugins_url( '/js/my-script.js', __FILE__ ), array( 'jquery', 'jquery-ui-sortable' ), MY_PLUGIN_VERSION );
}
Laden Sie Ihre Skripte in die Fußzeile
Wenn Ihre Skripte zu denjenigen gehören, die in die Fußzeile geladen werden müssen, gibt es einen fünften Parameter wp_enqueue_script()
, der WordPress anweist , sie zu verzögern und in die Fußzeile einzufügen (vorausgesetzt, Ihr Thema hat sich nicht schlecht benommen und es ruft tatsächlich den Haken wp_footer wie alle auf gute WordPress Themes sollten ):
<?php
define( 'MY_PLUGIN_VERSION', '2.0.1' );
add_action( 'admin_enqueue_scripts', 'my_plugin_admin_enqueue' );
function my_plugin_admin_enqueue() {
wp_enqueue_script( 'my-script', plugins_url( '/js/my-script.js', __FILE__ ), array( 'jquery', 'jquery-ui-sortable' ), MY_PLUGIN_VERSION, true );
}
Feinkörnigere Steuerung
Wenn Sie eine feinkörnigere Steuerung benötigen, dann finden Sie in Ozh einen großartigen Artikel mit dem Titel Gewusst wie: Laden von Javascript mit Ihrem WordPress-Plugin , in dem mehr Details enthalten sind.
Deaktivieren von Skripten zur Erlangung der Kontrolle
Justin Tadlock hat einen schönen Artikel mit dem Titel So deaktivieren Sie Skripte und Stile für den Fall, dass Sie:
- Kombinieren Sie mehrere Dateien zu einzelnen Dateien (der Kilometerstand kann hier mit JavaScript variieren).
- Laden Sie die Dateien nur auf den Seiten, auf denen wir das Skript oder den Stil verwenden.
- Hören Sie auf,! Important in unserer style.css-Datei zu verwenden, um einfache CSS-Anpassungen vorzunehmen.
Übergabe von Werten von PHP an JS mit wp_localize_script()
Auf seinem Blog hat Vladimir Prelovac einen großartigen Artikel mit dem Titel " Best Practice" zum Hinzufügen von JavaScript-Code zu WordPress-Plugins, in dem er erläutert, wp_localize_script()
wie Sie den Wert von Variablen in Ihrem serverseitigen PHP festlegen können, um ihn später in Ihrem clientseitigen Javascript zu verwenden.
Wirklich feinkörnige Kontrolle mit wp_print_scripts()
Und schließlich, wenn Sie wirklich feinkörnige Kontrolle benötigen, können Sie nachlesen, wp_print_scripts()
wie auf Beer Planet in einem Beitrag mit dem Titel Wie man CSS und JavaScript bedingt und nur dann einbindet, wenn dies von den Posts benötigt wird .
Epiloque
Das war's für Best Practices beim Einbinden von Javascript-Dateien in WordPress. Wenn ich etwas verpasst habe (was ich wahrscheinlich habe), lass es mich in den Kommentaren wissen, damit ich ein Update für zukünftige Reisende hinzufügen kann.