Saya ingin memberikan file .js ke tema anak saya

17

Saya mencoba untuk membuat file .js kustom di direktori tema anak saya.

Dalam functions.php tema anak saya, saya menemukan kode berikut

/* 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' ) );
}

di mana hanya bagian ini dilaksanakan oleh saya dan seharusnya memuat custom.script.js saya dari folder js /

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

Sayangnya tidak berhasil, adakah yang bisa membantu?

* Perbarui 2

Kode terlihat sekarang seperti ini dan berfungsi, tidak berfungsi ketika saya baru saja menambahkan fungsi ke add_action lainnya. Terima kasih semuanya atas bantuannya! Masih saya bertanya-tanya apakah tidak ada cara untuk memotong kode ini sedikit.

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' )
);
        }

Untuk apa baris ini?

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

Apakah itu perlu?

MrKainig
sumber
wp_enqueue_script( 'custom-script.js', get_stylesheet_directory_uri() . 'js/custom-script.js', array('jquery') );
Pieter Goosen
@Pieter Saya menyesuaikan perubahan Anda tetapi masih tidak berfungsi. Ini adalah apa yang saya miliki di file .js saya dan berfungsi jika saya meletakkannya langsung di page.php misalnya: <script> if (jQuery) {alert ("perpustakaan jQuery dimuat!"); } else {alert ("perpustakaan jQuery tidak ditemukan!"); } </script>
MrKainig
@Pieter Oke saya memasukkan kode dalam pertanyaan
MrKainig
Hapus tag skrip dari file js Anda
Pieter Goosen

Jawaban:

33

Berikut ini contoh kerjanya:

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' )
);
        }

Atau seperti ini yang ternyata memuat lebih cepat:

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' );

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

get_template_directory_uri() hanya akan berfungsi dalam tema induk.

Brad Dalton
sumber
1
Kenapa tidak kamu gunakan get_stylesheet_directory_uri()?
Pieter Goosen
Keduanya bekerja berdasarkan pengujian saya.
Brad Dalton
Saya mencoba yang pertama, itu tidak berhasil. Bisakah Anda memposting blog kode lengkap (termasuk enqueues yang ada & berfungsi)? Karena saya tidak tahu bagaimana menerapkan kode Anda dengan benar dengan kode yang sudah ada di functions.php saya
MrKainig
2
Ya, memang, tetapi get_stylesheet_directory_uri()lebih cepat :-)
Pieter Goosen
Ini hanya contoh kerja. Beberapa pekerjaan diperlukan atas nama Anda untuk mempelajari cara kerjanya dengan kode Anda. Anda sekarang dapat mengerjakan ulang kode Anda sehingga memuat skrip Anda dalam tema Anda.
Brad Dalton