it-swarm.asia

Dış jQuery/Javascript dosyaları WordPress ile nasıl bağlanır

Bu yüzden bir sonraki WP temasını temel almak için Starkers kullanıyorum ve küçük bir sorunla karşılaştım, kendi jQuery versiyonumu header.php dosyasına ekledim, ancak sitemi Firebug kullanarak incelerken fark ettim. jquery iki kez indiriliyordu, biraz kazı yaptım ve sadece dosya dahil olduğumu değil, wp_head() işlevinin de olduğunu fark ettim.

Sorunu gidermeye çalışırken, başlık dosyasında, Yirmi On temanın kaynaklandığı bir yorum gördüm.

/* Always have wp_head() just before the closing </head>
 * tag of your theme, or you will break many plugins, which
 * generally use this hook to add elements to <head>, such 
 * as styles, scripts, and meta tags
 */

İşte benim sorunum, jQuery dosyasının kullanmak isteyen başka bir dosyadan önce ayarlanması gerektiği ve wp_head() __ <head> öğesindeki son şey olması gerektiği izlenimindeyim. Acaba wp_head() öğesini en üste koymalı mıyım ki WP dahil jQuery dosyası bütün eklentilerim için kullanılmasın bile.

wp_head() işlevindeki jQuery satırını yorumladım, ancak yönetici sayfası için gerekliydi, böylece geri koymak zorunda kaldım.

Ayrıca, jQuery’ün Google CDN sürümünü kullanırken de (en azından deneme) kullanmak isterdim, ancak iki kez eklemek istemiyorum!

Umarım ne açıklamaya çalıştığımı anlıyorsundur, bu sorunu nasıl çözebileceğime dair herhangi bir öneri en çok takdir edilecektir. JavaScript dosyalarınızı başlık dosyasında nasıl kullandığınız konusunda da herhangi bir tavsiyede bulunmak isterim.

Teşekkürler!

15
Ben Everard

Sorunuzun ifadesinden, şablonunuza <script> etiketlerini yazarak komut dosyaları eklemelisiniz. Kendi komut dosyalarınızı wp_enqueue_script() ile şablonunuzun functions.php içine ekleyin, jQuery'ye uygun şekilde ayarlayın ve wp_head() komut dosyalarını sizin için ekleyecektir.

function my_scripts() {
    wp_enqueue_script( 'my-sweet-script', get_bloginfo('template_directory') . '/script.js', array('jquery') );
}
add_action('template_redirect', 'my_scripts');

Daha fazla bilgi için kodeksi sayfasına bakınız.

9
Annika Backstrom

JPuery ile WordPress kullanmak için 5 ipuçlarına göz atmanızı öneririm . Diğer şeylerin yanı sıra, jQuery’i Google’ın kütüphanesinden yüklemek için gereken kodu gösterir:

function my_init() {
    if (!is_admin()) {
        // comment out the next two lines to load the local copy of jQuery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js', false, '1.3.2');
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'my_init');

Ayrıca Google Kitaplıklarını Kullan eklentisini de kontrol edebilirsiniz.

7
Travis Northcutt

Her ne kadar @tnorthcutt, kendi yükünü yüklemek istiyorsan WP'nin yerel jquery'ını düzgün bir şekilde temizlemelisin, doğru olsa da, WP çekirdeği olan farklı bir jquery sürümü yüklerken sorunların yaşayacağından emin olabilirsin. Hem çekirdek hem de eklentiler orada olmasına güveniyor. Bu nedenle, temanızı her zaman WP güncellendiğinde en son jquery ile güncellemezseniz, siteniz bozulabilir.

Aşağıdaki kod, temanızın her zaman doğru jquery sürümünü yüklediğinden, ilk önce WP sürümünün kullanıldığını ve ardından Google’dan yüklendiğini kontrol eder:

$wp_jquery_version = $GLOBALS['wp_scripts']->registered['jquery-core']->ver;
$jquery_version = ( $wp_jquery_version == '' ) ? '1.8.3' : $wp_jquery_version; // fallback, just in case 
wp_deregister_script('jquery');
wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/'. $jquery_version .'/jquery.min.js', $jquery_version, false );
wp_enqueue_script('jquery');
1
cjbj