Alt temam için bir .js dosyası sıralamak istiyorum


16

Alt tema dizinimde özel bir .js dosyasını sıraya koymaya çalıştım.

Çocuğum temasının function.php dosyasında aşağıdaki kodu bulurum

/* After this. you can override Accessible Zen's pluggable functions or add your own.
 * Remember, do your best to stay accessible! :)
 *
 */
 add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_script( 'custom-script.js', 'js/custom-script.js', array('jquery') );
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' ) );
}

yalnızca bu bölüm benim tarafımdan uygulandı ve custom.script.js dosyasını js / klasöründen yüklemesi gerekiyordu

wp_enqueue_script( 'custom-script.js', 'js/custom-script.js', array('jquery') );

Maalesef öyle olmuyor, kimse yardımcı olabilir mi?

* Güncelleme 2

Kod şimdi böyle görünüyor ve işe yarıyor, işlevi diğer add_action'a eklediğimde işe yaramadı. Yardım için herkese teşekkürler! Yine de bu kodu biraz kesmek için bir yol olup olmadığını merak ediyorum.

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' ) );
}

/*add my custom jquery script*/
add_action( 'wp_enqueue_scripts', 'menu_scripts' );
function menu_scripts() {
wp_enqueue_script( 'responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );
wp_enqueue_script(
    'custom-script',
    get_stylesheet_directory_uri() . '/js/custom-script.js',
    array( 'jquery' )
);
        }

Bu hat ne için?

wp_enqueue_script( 'responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );

Bu gerekli mi?


wp_enqueue_script( 'custom-script.js', get_stylesheet_directory_uri() . 'js/custom-script.js', array('jquery') );
Pieter Goosen

@Pieter Yaptığınız değişikliği uyarladım ama hala çalışmıyor. Bu benim .js dosyamda ne var ve ben doğrudan page.php koyarsanız çalışır: Örneğin: <script> if (jQuery) {alert ("jQuery library yüklü!"); } else {alert ("jQuery kitaplığı bulunamadı!"); } </script>
MrKainig

@Pieter Tamam, soruya kodu koydum
MrKainig

Komut dosyası etiketlerini js dosyanızdan kaldırın
Pieter Goosen

Yanıtlar:


32

İşte çalışan bir örnek:

add_action( 'wp_enqueue_scripts', 'menu_scripts' );
function menu_scripts() {
wp_enqueue_script( 'responsive-menu', get_bloginfo( 'stylesheet_directory' ) . '/js/responsive-menu.js', array( 'jquery' ), '1.0.0' );
wp_enqueue_script(
    'custom-script',
    get_stylesheet_directory_uri() . '/js/custom_script.js',
    array( 'jquery' )
);
        }

Ya da görünüşe göre daha hızlı yüklenen böyle:

function my_scripts_method() {
    wp_enqueue_script(
        'custom-script',
        get_stylesheet_directory_uri() . '/js/custom_script.js',
        array( 'jquery' )
    );
}

add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

Kaynak http://codex.wordpress.org/Function_Reference/wp_enqueue_script

get_template_directory_uri() yalnızca ana temada çalışır.


1
Neden kullanmıyorsun get_stylesheet_directory_uri()?
Pieter Goosen

İkisi de testlerime dayanarak çalışıyor.
Brad Dalton

İlkini denedim, işe yaramadı. Tam kod blogunu gönderebilir misiniz (mevcut ve çalışma sıralarım dahil)? Çünkü kodumu zaten işlevlerimdeki kodla nasıl uygulayacağımı bilmiyorum.
Php

2
Evet, yapıyorlar, ancak get_stylesheet_directory_uri()daha hızlı :-)
Pieter Goosen

Bu sadece çalışan bir örnek. Kodunuzla nasıl çalıştığını öğrenmek için sizin adınıza biraz çalışma yapmanız gerekir. Artık kodunuzu yeniden çalıştırarak temanıza komut dosyalarınızı yükleyebilirsiniz.
Brad Dalton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.