WordPress sitenize özel komut dosyaları veya stil sayfaları eklemek genellikle bir sitenin işlevselliğini, özelliklerini ve tasarımını geliştirmek için yapılır. Temanıza veya eklentinize JavaScript (JS olarak da adlandırılır) ve CSS kodu eklemenin birden çok yolu vardır. Farklı bir makalede, anlaşılması ve uygulanması daha kolay olanlardan kodlama açısından daha yoğun olanlara kadar JS kodu eklemenin tüm yollarını ele aldık. Bu yazıda, bu yöntemlerden biri olan kuyruğa sokmaya daha yakından bakacağız. Daha büyük özel betikler ve stil sayfaları eklemek için en iyisidir, fakat gelişmiş bir kullanıcı yöntemidir. Bu yüzden bu makale, mevcut bilgileri geliştirmek isteyen geliştiriciler veya WordPress kullanıcıları için daha uygundur. Elbette, herhangi bir WordPress kullanıcısı için iyi bir okumadır, fakat bunu denemek istiyor ancak kodlama konusunda rahat değilseniz ek araştırma yaptığınızdan emin olun. Bu makalede özel betikleri ve stil sayfalarını kuyruğa almaya yönelik çeşitli yaklaşımları ele alacağız ve bunlar için örnekler sağlayacağız:
-
Ön uç için komut dosyaları ve stil sayfaları ekleme
-
Arka uç için komut dosyaları ve stil sayfaları ekleme
-
koşullu kuyruğa alma
-
Satır içi JS ve CSS kodu ekleme
Sıralama ve WordPress Kancaları
Bu makalenin ana bölümüne geçmeden önce, enqueueing ve WordPress kancalarının ne olduğuna bir göz atalım. Kuyruğa alarak, yani wp_enqueue_script ve wp_enqueue_style işlevlerini kullanarak, WordPress’e özel betikleri ve stil sayfalarını ne zaman ve nereye yükleyeceğini bildirirsiniz. Basitçe söylemek gerekirse, yükleme sürenizi yavaşlatacak olan tüm kodunuzu tek bir yerde bulundurmak yerine, enqueue işlevini kullanırsınız. WordPress’in özel bir kod dosyasıyla ne zaman etkileşime girmesi gerektiğini ve bu dosyanın hangi bağımlılıklara sahip olduğunu belirlemenize yardımcı olur.
WordPress kancaları, geliştiricilerin davranışını değiştirmek ancak dosyalarını olduğu gibi bırakmak için WordPress Çekirdeği ile etkileşime giren eklentilere ve temalara özel kod eklemelerine olanak tanıyan bir özelliktir. Bir geliştirici, özel kod eklemenin yanı sıra, WordPress PHP işlemesi sırasında bu kodun ne zaman çalışacağını seçebilir. Bu kancalar kullanılarak yapılır. Varsayılan bir WordPress kancası seçebilir veya özel bir kanca ekleyebilir ve kullanabilirsiniz. Kanca kullanmak için önce özel bir fonksiyon yazmanız gerekir (genellikle geri arama veya kancalı fonksiyon olarak adlandırılır). Bu işlevler iki türe ayrılır: eylemler ve filtreler. Kancanız için kullandığınız işlev türüne bağlı olarak, eylem kancalarına veya filtre kancalarına sahip olabilirsiniz. Eylemler ve filtreler arasındaki fark, eylemlerin mevcut içeriğe ekleme yapması, filtrelerin ise yalnızca içeriği değiştirebilmesidir. Filtreler kendilerine verilen bağımsız değişkeni düzenler ve her zaman bir değer döndürmesi gerekir. Aksine, eylemlere her zaman bağımsız değişken verilmez ve bir değer döndürmeleri gerekmez.
Ön Uç için Komut Dosyaları ve Stil Sayfaları Ekleme
Artık sıkma ve kancaların ne olduğunu anladığımıza göre, WordPress’e komut dosyaları ve stil sayfaları eklemeye geçebiliriz. İlk olarak kodunuz için ayrı bir dosya oluşturmanız gerekir. Dosyanın uzantısı .js (Javascript ekleniyorsa) veya .css (bir stil sayfası ekleniyorsa) olmalıdır. Daha sonra dosyayı temanızın veya eklenti dizininizin içine yerleştirin. Daha sonra, dosyayı kuyruğa alan bir kod parçacığı oluşturun. Özel betik/stil sayfası dosyanızın konumuna bağlı olarak, onu ana veya alt temanızın functions.php dosyasına veya bir eklenti dosyasının içine eklemeniz gerekir. Kod parçacığı iki farklı kod parçası içerir. İlk parça, dosyayı wp_enqueue_script ve wp_enqueue_style kullanarak sıkıştıran bir işlevdir. İkincisi, iki varsayılan WordPress komut dosyası ve stil sayfası yükleme kancasından birine (wp_enqueue_scripts ve admin_enqueue_scripts) takılan add_action işlevinin kullanımını temsil eder. İlk kanca, sitenin ön ucunu etkileyen komut dosyalarını ve stil sayfalarını yüklemek için, ikincisi ise yönetici kontrol panelini etkileyenler içindir.
İyi kodlanmış bir temanın veya eklentinin herhangi bir geliştiricisi, bu komut dosyası ve stil sayfası ekleme yöntemini tercih eder. Aynı komut dosyalarının ve stil sayfalarının birden çok kez yüklenmesini engeller ve uyumsuzluğa dayalı eklenti çakışmalarını azaltır. Ayrıca geliştiriciler, kodlamalarını daha da standart hale getirmek için yaygın olarak kullanılan betiklerin bir listesinden yararlanabilirler.
Komut Dosyalarını Kuyruğa Al
wp_enqueue_script işlevi, aşağıda açıklayacağımız beş parametreye (argümanlar da denir) sahiptir. Yalnızca ilki zorunludur ve benzersiz olması gerekir.
$handle – benzersiz bir betik adı.
$src – betiğin tam URL yolu veya yol işlevleriyle birleştirilmiş göreli bir yol (örnekler aşağıdadır). Varsayılan değer boş bir dizedir (“).
$deps – kuyruğa almak istediğiniz betiğin bağlı olduğu bir dizi betik/komut dosyası işleyicisi. Varsayılan değer boş bir dizidir (array()).
$ver – komut dosyasının sürümünü belirleyen bir sayı. Değer yanlışsa, otomatik olarak geçerli WordPress sürümüne ayarlanır. Null değerine ayarlandığında sürüm eklenmez. Varsayılan değer yanlıştır.
$in_footer – Komut dosyanızın yerleşimini belirleyen ‘doğru’ veya ‘yanlış’ değeri. “true” olarak ayarlanırsa, komut dosyası kapanış gövde etiketinden () önce yüklenir. ‘false’ olarak ayarlanırsa, şuraya yüklenir. Varsayılan olarak değer “yanlış”tır.
wp_enqueue_script işlevinin kullanımını anlamanıza yardımcı olmak için birkaç örnek ekledik. Aynı durum, bu makaledeki diğer tüm bölümler için de geçerlidir. Fakat devam etmeden önce, makalenin tamamıyla ilgili olan iki temel noktaya değinmemiz gerekiyor.
İşlevin yalnızca bir gerekli bağımsız değişkeni ($handle) olduğundan, başka parametre eklemezseniz, bunun yerine varsayılan değerleri kullanılacaktır.
İkinci nokta, tam URL’leri kullanmaktan kaçınmanız ve yolu alan varsayılan WordPress işlevlerini kullanmayı tercih etmeniz gerektiğidir. Bu durum URL’nin değişmesi durumunda işe yaramaz hale gelecek sabit kodlama statik URL’lerinden kaçınmak için yapılır. Yol alma için birkaç farklı WordPress işlevini kullanabilirsiniz; Aşağıda üç örnek ekledik.
get_template_directory_uri() – sonunda eğik çizgi olmadan ana tema dizini yolunu döndürür,
get_stylesheet_directory_uri() – alt tema dizini yolunu, eğik çizgi olmadan döndürür ve
plugins_url() – bir eklenti dizinine giden yolu döndürür. Bu üç işlevden yalnızca plugins_url() parametreye sahip olabilir (en fazla iki). Bunlar, sonuna eklenmesi gereken ekstra yol ve eklenti dizininde bulunan dosyanın (komut dosyası veya stil sayfası) tam göreli yoludur. İkincisi, ikinci parametre olarak __FILE__ dahil edilerek not edilir.
Örnekler:
-
Bu kodu ana temanızın functions.php dosyasına yerleştirerek, theme-script tanıtıcısı ile bir JS betiğini sıkıştırabilirsiniz. Dosya yolu sitenizin-url/wp-content/themes/tema-adı/varlıklar/js/theme_script.js şeklindedir, geri kalan bağımsız değişkenler ise varsayılan değerlerine ayarlanmıştır. Bu durum komut dosyasının başka herhangi bir komut dosyasına bağlı olmadığı, sürümünün geçerli WordPress sürümüyle aynı olduğu ve sıralamanın etiketinden önce yapıldığı anlamına gelir.
function theme_js_script() { wp_enqueue_script( 'theme-script', get_template_directory_uri() . '/assets/js/theme_script.js'); } add_action('wp_enqueue_scripts', 'theme_js_script');
-
Bu kodu, alt temanızın functions.php dosyasına yerleştirerek, tanıtıcı sayacıyla bir JS betiğini kuyruğa alabilirsiniz. Dosya yolu sitenizin-url/wp-content/themes/child-theme-name/js/counter.js şeklindedir ve jquery tanıtıcılı betiğe bağlıdır. Sürümü, mevcut WordPress sürümüyle aynıdır ve