Kullan wp_enqueue_script()
senin tema
Temel cevap admin için ön uç için wp_enqueue_script()
bir wp_enqueue_scripts
kanca kullanmaktır admin_enqueue_scripts
. Böyle bir şeye benzeyebilir (temanızın functions.php
dosyasından aradığınızı varsayar ; stil sayfası dizinine nasıl başvurduğumu not edin):
<?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" );
}
Bu temeldir.
Önceden Tanımlanmış ve Birden Çok Bağımlı Komut Dosyası
Ancak diyelim ki, hem jQuery hem de jQuery UI'yı dahil etmek istediğinizi ve WordPress'in içerdiği varsayılan komut dosyaları listesinden Sıralanabilir'i ve komut dosyanızın bunlara bağlı olmasını mı istediğinizi varsayalım. Kolay, sadece WordPress'te tanımlanan önceden tanımlanmış tutamaçları kullanan ilk iki komut dosyasını ekleyin wp_enqueue_script()
ve komut dosyanız için, her bir komut dosyası tarafından kullanılan komut dosyası tutamaçlarının bir dizisi olan 3. bir parametre sağlayın :
<?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' ) );
}
Eklentideki Komut Dosyaları
Ya bunun yerine bir eklentide yapmak istersen? plugins_url()
Javascript dosyanızın URL'sini belirtmek için işlevi kullanın :
<?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 );
}
Komut Dosyalarınızı Sürüm Oluşturma
Ayrıca yukarıda eklentimize bir sürüm numarası verdiğimizi ve bunu 4. parametre olarak geçirdiğimizi unutmayın wp_enqueue_script()
. Sürüm numarası, komut dosyasında URL'de sorgu argümanı olarak kaynak olarak verilir ve sürüm değiştiğinde tarayıcıyı önbelleğe alınmış dosyayı yeniden indirmeye zorlar.
Komut Dosyalarını yalnızca ihtiyaç duyulan sayfalara yükleyin
Web Performans 1 kuralı diyor HTTP istekleri Minimize sen gerektiğinde sadece yüklemek için komut sınırı olmalı mümkünse bu yüzden. Örneğin, betiğinize yalnızca yöneticide ihtiyaç duyuyorsanız, onu admin_enqueue_scripts
kanca kullanarak yönetici sayfalarıyla sınırlandırın :
<?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 );
}
Komut Dosyalarınızı Altbilgiye Yükleme
Komut dosyalarınız altbilgiye yüklenmesi gerekenlerden biriyse wp_enqueue_script()
, WordPress'e geciktirmesini ve altbilgiye yerleştirmesini söyleyen bir 5. parametre vardır (temanızın yanlış davranmadığını ve gerçekte wp_footer kancasını tümüyle çağırdığını varsayarak) iyi WordPress temaları gerekir ):
<?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 );
}
İnce Taneli Kontrol
Bundan daha hassas bir kontrol gerektiriyorsa, Ozh'un Nasıl Yapılır: WordPress Eklentinizle Javascript Yüklemek başlıklı harika bir makalesi vardır .
Kontrolü Elde Etmek için Komut Dosyalarını Devre Dışı Bırakma
Justin Tadlock'un , aşağıdaki durumlarda komut dosyalarını ve stilleri nasıl devre dışı bırakabileceği konulu güzel bir makaleye sahiptir :
- Birden fazla dosyayı tek bir dosyada birleştirin (kilometre burada JavaScript ile değişebilir).
- Dosyaları yalnızca komut dosyasını veya stilini kullandığımız sayfalara yükleyin.
- Basit CSS ayarlamaları yapmak için style.css dosyamızdaki!
Değerleri PHP'den JS'ye Geçmek wp_localize_script()
Vladimir Prelovac'ın blogunda, WordPress eklentilerine JavaScript kodu eklemek için En İyi Uygulama başlıklı harika bir makalesi var. Burada wp_localize_script()
, sunucu tarafı PHP'nizdeki değişkenlerin değerini daha sonra müşteri tarafı Javascript'inizde kullanılacak şekilde ayarlamanıza izin vermek için kullanmayı açıklıyor .
Gerçekten İnce Taneli Kontrol wp_print_scripts()
Ve gerçekten hassas denetim ihtiyaç nihayet eğer içine bakabilirsiniz wp_print_scripts()
üzerinde tartışıldığı gibi Bira Planet başlıklı bir yayında CSS ve JavaScript şartlı Ve Dahil Nasıl Sadece mesaj gönderdiği Gerekli olduğunda .
Epiloque
Bu, WordPress ile Javascript dosyalarını dahil etmenin En İyi Uygulamaları için geçerlidir. Bir şeyi kaçırdıysam (ki muhtemelen sahip olduğum gibi) yorumlarda bana bildirdiğinizden emin olun, böylece gelecekteki gezginler için bir güncelleme ekleyebilirim.