24 Haziran 2013 Pazartesi

WordPress Seçenekleri JavaScript için 1. Geçti

WordPress, size PHP dünyada her zaman değildir ve bu nedenle ayarları ve veritabanından bazen komut veri geçmek zorunda.Birçok Eklentiler, size wp-load.php yükleme çözümler bulabilirsiniz ve bu nedenle WordPress tüm özelliklerine erişim. Uzun zaman önce Otto (Samuel Wood) zaten bu gerçeği adlandırılır ve bu makaleler çözümler gösterir. Sorular hala ve hala çünkü bu tür sorunların tam wp-load.php yüklemek Eklentiler vardır.
Benzer bir sorun komut kaynağı sadece WordPress'in altbilgi alanında yazılmaz ortaya çıkar, ama bir dosyaya dış kaynaklı ve ileWp_enqueue_script () dahil. Ancak o zaman WordPress, yönetmek uzlaşma ve teslimat için bu komut dosyalarını optimize edebilirsiniz. Bu nedenle ne kadar PHP JS veri geçmek için iki örnek, göstermek istiyorum.

İlk kodunu PHP mevcut kaynakları ve doğrudan sayfanın başlığı bir nesne olarak değerleri script mağaza ile veritabanından değerleri almak için JSON ile değerlerin geçiş kullanır.
  • add_action ( 'admin_enqueue_scripts' , 'fb_print_scripts' );
  • fonksiyonu fb_print_scripts () {
  •     Küresel current_screen $ ;
  •     
  •     eğer ( isset ( $ current_screen -> id ) && ! ​​in_array ( $ current_screen -> id , dizi ( 'post' , 'sayfa' ) ) )
  •         dönmek ;
  •     
  •     eğer ( is_plugin_active_for_network ( plugin_basename ( __FILE__ ) ) )
  •         $ Seçenekler = get_site_option ( 'my_options_id' );
  •     başka
  •         $ Seçenekler = get_option ( 'my_options_id' );
  •     
  •     eğer ( ! $ seçenekleri )
  •         dönmek ;
  •     >
  •     < script type = "text / javascript" >
  •         var my_json_object = <php? echo json_encode ( $ seçenekler ); ?>;
  •     </ komut >
  •     <? Php
  • }
Sayfa fonksiyonun ilk adımda talep olduğu gibi yukarıdaki fonksiyonu, arka uç başkanı bir JSON nesne olarak veritabanından değerleri verir. Via $ current_screen Eğer tanımlanmış sayfa (yazılan, sayfa) birinde ise sadece teslim edilecek bu nedenle kontrol edilecektir.
Bir sonraki adım yaygın bir uygulama ve WordPress komut dahil etmek en iyi çözümdür. Böylece Sonra JSON nesneye girişler olan JS dosyası, içerecektir.
add_action ('admin_enqueue_scripts', 'fb_admin_enqueue_scripts');

fonksiyonu fb_admin_enqueue_scripts (burada $) {
 
 if (! in_array (burada $, array ('post.php', 'post-new.php',))
  dönmek;
 
 $ Eki = ('SCRIPT_DEBUG') && SCRIPT_DEBUG tanımlanır? '. Dev':'';
 
 Wp_enqueue_script (
  self :: get_textdomain (). '_script'
  plugins_url ('/ js / my_script'. $ eki. '. js', __ FILE__),  
  array ('jquery', 'my_other_script'),
  '',
  DOĞRU
 );
 
}
Komut doğrudan işlenir nesneye erişme.
jQuery (document). ready (function ($) {
 
 if (typeof my_json_object == 'undefined')
  dönmek;

Tarayıcı konsol / / hata ayıklama
console.dir (my_json_object); 

});

Hiç yorum yok:

Yorum Gönder