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.