WP_LOCALICAL_SCRINK () ile PHP’den JavaScript’e Sihirli Altın Köprü Oluşturun
WP_LOCALICAL_SCRIPT (), PHP değişkenine JavaScript’e devam etmenizi sağlar. WordPress’i sevmenin iyi bir nedeni, kolayca yaptığı birçok programlama görevidir. Bugün belki en sevdiğim WordPress mucizesini göreceğiz: wp_localyal_script (). Ad anlamına gelmediğinden, wp_localale_script () çok önemli bir şey yapmanıza izin verir: Bu, PHP değişkenine JavaScript’e devam etmenizi sağlar. Neden WP_LOCALICAL_SCRINK () Başlamadan önce harika, istemcinin sunucusundaki/tarafındaki (veya ön uç/arka uçtaki) farklılıkları anlarsanız çok yararlı olacaktır. PHP sunucu tarafıdır: her şey tarayıcıya gönderilmeden önce tüm işlerini yapar. JavaScript, bağlamımızda, müşterinin tarafıdır: fare tıklamasıyla öğeleri gizlemek ve görüntülemek gibi şeyler yapmak, tarayıcınızda çalışır.
Şimdi: PHP değişkenine neden JavaScript’e devam etmemiz gerekiyor? Gerçek hayat örneğini ele alalım. WordPress yayınlarını düzenleme deneyimi için bir klavye kısayolu oluşturan bir eklenti (kemik ama işlevsel) yazıyorum. Bu eklenti ile, örneğin, klavyenizde CTRL+S’ye basabilirsiniz ve fareyi “DRAF Kaydet” düğmesine kadar taşımanız gerekmeden mevcut yayınınıza “taslağı kaydeder”. Sorun böyle site seçeneklerini yönetmek için PHP’ye ihtiyacımız var: Bir klavye kısayolunun kullanıcılar tarafından yapılandırılabilmesini istiyorum. Kullanıcı, Ctrl+D ile eşlenecek şekilde “taslağı kaydetmek” istiyorsanız, bunun mümkün olmasını istiyorum.
PHP’nin site seçeneklerini yönetmesi gerekir: Klavye kısayollarını depolayan sunucu tarafı değişkenleri, özellikle site genelinde kullanıcılar için “taslak kaydet”.
JavaScript, istemcinin tarafındaki klavye kısayolunu dinlemek için bu değişkeni bilmelidir.
Başka bir deyişle, değişkenleri PHP’den JavaScript’e sürdürebilmeliyiz. PHP değişkeninden JavaScript hackleme çözümüne geçmek için nasıl hacky, sayfa veya DOM işaretlemesinin manipülasyonunu içerir. Az önce tarif ettiğimiz sorunları çözmenin birkaç yolu vardır. Belki WP-Admin/Post.php, şu anda saklanan bağlayıcı klavyeyi tanımlayan bir grup LI öğesi içeren altbilgide görünmeyen
alır. Ya da belki etiket sayfası, JavaScript okunabilen aynı bilgileri içeren bir veri attututututututute string = “” dev alır.
Ancak WordPress bize sayfaların veya belge nesne modellerinin (DOM) manipülasyonunu içermeyen zarif bir çözüm sunar.Bu: Akıllı Yol: WP_LOCALICAL_SCRIPT () WP_LOCALICAL_SCRIPT () nasıl yapılacağını anlamak için, çok basitleştirilen “Klavye kısayolu” sürümüne bakalım: Aşağıdaki PHP’den geçen veriler, iki ilişkili olmak için kullandığımız basit bir PHP sürümüdür. Şeyler: İhtiyacımız olan JavaScript’i Enqueue ve
JavaScript’i vermek gerekli verilerdir.
Aşağıdaki kodu okuduğunuzda, WordPress kancasını ve gerekirse komut dosyasını ve stilini enqueueing’i okuyun.
/ * Çevre: Bu, eklentinin php dosyası çalma */ // işlevimizi WordPress’in admin_init aksiyon kancası add_ace (‘admin_init’, ‘windpout_demo_get_scripts’) içine bağlayın; İşlev wspout_demo_get_scripts () {// enqueue wp_enqueue_script (‘wspout_demo_update_shortcut’, plugin_dir_url (__file__). / * * Bu bir dış işlevdir. * Klavye kısayolu bağlamasını saklayan site seçeneklerinin adlarının bir php dizisini döndürür */ $ bindingOptionSarray = wspout_demo_return_binding_option_names (); // Akımları oluşturmak için Site Seçenekleri Alın Kayıtlı Bağlama $ BindingStopass = Array (); foreach ($ bindingOptionSarray olarak $ key => $ name) {$ bindingStopass [] = get_option ($ name); } // ‘Keys’ bir dizi akım içerecektir, kaydedilmiş bağlama $ datatopass = Array (‘Keys’ => $ bindingStopass); / * * PHP’yi JavaScript’e geçmek için gerçek işlev. Args: * 1. Hedef javaScript dosyasında ‘wphout_demo_update_shortcut’ kullanımı var (bu yeni çıkardığımız dosya) * 2. Veriler ‘JS dosyası * 3.’ ‘. */ wp_localize_script (‘wspspout_demo_update_shortcut’, ‘geçti verisi’, $ datatopass); } JavaScript’teki verileri kullanarak verilerimizin gerçek kullanımı basitleştirilemeyecek kadar karmaşık olacaktır, bu yüzden burada sadece çok basit bir kullanım durumu yapacağız: Depolanan ilk bağlama ile bir tarayıcı uyarı vereceğiz.
/ * Çevre: Update-mmut.js * // Access ‘Keys’ Element Off PassedData Nesnesi Var KısaTutKeys = PassedData.Keys; // PassedData Alert’in ilk öğesi ile bir tarayıcı uyarısı oluşturun (JortCutKeys [0]); Bir kez daha, bu kodun görüntüleri biraz basitleştirildi. Kemerinizin altındaki bu örneklerle, editör postasında bir tarayıcı kısayolunu nasıl yaptığımızı öğrenmek için sizi eklenti koduna göz atmaya davet ediyorum. Umarım “WP_LOCALICAL_SCRIPT () çok havalı.” Hatırlanması gereken bazı notlar: Oraya veri göndermeden önce komut dosyanız için kayıt yapmanız ve kuyruklamanız gerekir. Bizim durumumuzda, her iki şeyi de bir işlevde yapıyoruz – ki bu kod okunabilirliği için en iyisi olmayabilir.
Aynı anda birçok şeyden geçebilirsiniz. Yalnızca bir ‘anahtar’ kümemiz var, ancak daha fazla veriye ihtiyacınız varsa, birçok veri türüyle ilişkisel $ datatopass dizisini gerçekten yükleyebilirsiniz.
Adıyla ilgileniyor mu? WP_SEND_PHP_VARS_TO_TO_JS () değil neden wp_localize_script ()? WordPress’teki birçok şey gibi, bu tarihin bir parçası. Codex’ten: “Bu, komut dosyalarınızda kullanılan herhangi bir dizenin doğru bir çevirisini sunmanızı sağlar. Bu gereklidir, çünkü WordPress şu anda sadece PHP’de bir mahsul yangını sunar, doğrudan JavaScript’te değil … Yerelleştirme ana kullanım olmasına rağmen, bu, komut dosyanız için genellikle yalnızca WordPress sunucusundan alabileceğiniz herhangi bir veriyi kullanılabilir hale getirmek için kullanılabilir. “Başkaları kelimesiyle, wp_localize_script () i18n bir şey olarak başlar ve diğer birçok kullanım için çok yararlı olduğu ortaya çıkıyor. Şimdi wp_localize_script () anladınız, eğer arkada ve önde uzanan bir kod yazarsanız, biliyorum WP_LOCITALLE_SCRINK () gibi olacaksınız. Bu, görünmez yapmayı ve herhangi bir şeyi yapmayı bırakmanızı ve veritabanınızdan PHP işleminizden her türlü zengin veriye devam etmenize izin verecektir. En basit olanı, bu, PHP değişkenine JavaScript’e devam etmenize izin vermenin WordPress yoludur ve bu çok yararlı bir şeydir.
Okuduğunuz için teşekkürler! Kredi görüntüsü: Nelson L.