BU DERSİN BAŞLIKLARI
wp_localize_script( string $bağlı_olduğu_script, string $kimlik, array $tercüme_edilecek_metin)
Açıklaması:
Kaydedilmiş script (JavaScript) kodlarımızda kullandığımız metinleri tercüme edebilmek için kullanabileceğimiz bir fonksiyondur.
Wp_localize_script()
fonksiyonunun bir işlevi de, PHP ile JavaScript arasında bir köprü kurmasıdır. Çünkü, bir takım PHP değerlerini, bu fonksiyonun üçüncü parametresine yerleştirerek, daha sonra bu değerleri doğrudan .js dosyalarına çekebilmeyi sağlar.
Parametreleri:
$bağlı_olduğu_script
(Zorunludur.) Wp_localize_script()
fonksiyonu ile tercüme etmek istediğimiz script metninin, temamızın hangi .js dosyasına ait olduğunu gösteren isimdir. Bu isim, .js dosyasını WordPress temasına eklerken kullandığımız wp_register_script()
veya wp_enqueue_script()
fonksiyonunun ilk parametresinden gelir.
$kimlik
(Zorunludur.) Wp_localize_script()
fonksiyonu ile tercüme etmek istediğimiz metinler için kullandığımız ortak bir addır. Bu ad, aynı zamanda, bu fonksiyonun oluşturduğu JavaScript nesnesinin de adı olarak kullanılacaktır ve biz .js dosyamızda bu fonksiyonda tanımladığımız datalara bu ad ile ulaşabileceğiz.
$tercüme_edilecek_metin
(array – Zorunludur.) Tek boyutlu ya da çok boyutlu bir dizidir.
Döndürdüğü değer:
(bool) Tercüme etmek istediğimiz script, başarılı bir şekilde oluşturuldu ise true
, yoksa false
değerini döndürür.
Kaynak kodu:
Dizini : wp-includes/functions.wp-scripts.php
function wp_localize_script( $handle, $object_name, $l10n ) {
global $wp_scripts;
if ( ! ( $wp_scripts instanceof WP_Scripts ) ) {
_wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );
return false;
}
return $wp_scripts->localize( $handle, $object_name, $l10n );
}
Kullanımı:
Wp_localize_script()
fonksiyonunun, bir script textini tercümeye hazırlaması için, önce scriptin kaydedilmesi gerekir. Yani tercüme etmek istediğimiz scriptin, önce wp_register_script()
veya wp_enqueue_script()
fonksiyonu ile temaya eklenmiş olması gerekir.
Örnek-1
Wp_localize_script()
fonksiyonunun genel kullanımı şöyledir:
function benimtemam_scriptler() {
wp_enqueue_script( 'slider', get_template_directory_uri() . '/JS/slider.js', array('jquery'), null, true );
wp_localize_script( 'slider', 'slider_nesnesi',
array(
'data_1' => 'Burası tercüme edilsin.',
'data_2' => 'Burası da tercüme edilsin.',
)
);
}
add_action( 'wp_enqueue_scripts', 'benimtemam_scriptler' );
// BİLGİLENDİRME
// 'Burası tercüme edilsin.' metnine ulaşmak için, slider.js içinde şunu yazın:
// slider_nesnesi.data_1
// 'Burası da tercüme edilsin.' metnine ulaşmak için, slider.js içinde şunu yazın:
// slider_nesnesi.data_2
Yukarıdaki kod, wp_localize_script()
fonksiyonunun üçüncü parametresinde belirtilen “Burası tercüme edilsin.” ve “Burası da tercüme edilsin.” değerlerini tercüme edemez. Fakat şu şekilde yazarsak, bu ifadeler tercüme edilebilir:
function benimtemam_scriptler() {
wp_enqueue_script( 'slider', get_template_directory_uri() . '/JS/slider.js', array('jquery'), null, true );
wp_localize_script( 'slider', 'slider_nesnesi',
array(
'data_1' => __('Burası tercüme edilsin.', 'ilktemam'),
'data_2' => __('Burası da tercüme edilsin.','ilktemam'),
)
);
}
add_action( 'wp_enqueue_scripts', 'benimtemam_scriptler' );
Örnek-2
Yukarıdaki script metinlerini, aşağıdaki şekilde de tercüme edebiliriz, fakat bu yöntem daha az tercih edilir:
// Scripte 'slider' ismini vererek ve kaydeder
wp_register_script( 'slider', get_template_directory_uri() . '/karalama/slider.js', array('jquery'), null, true );
// Tercüme edilecek verileri girer
$tercume_edilecekler = array(
'data_1' => __('Burası tercüme edilsin.', 'ilktemam'),
'data_2' => __('Burası da tercüme edilsin.','ilktemam'),
);
wp_localize_script( 'slider', 'slider_nesnesi', $tercume_edilecekler );
// Scripti temaya ekler
wp_enqueue_script( 'slider' );
// BİLGİLENDİRME
// 'Burası tercüme edilsin.' metnine ulaşmak için, slider.js içinde şunu yazın:
// slider_nesnesi.data_1
// 'Burası da tercüme edilsin.' metnine ulaşmak için, slider.js içinde şunu yazın:
// slider_nesnesi.data_2