Tôi muốn liệt kê một tập tin .js vào chủ đề con của tôi


16

Tôi đã cố gắng ghi lại một tập tin .js tùy chỉnh trong thư mục chủ đề con của tôi.

Trong hàm.php của chủ đề con tôi tìm thấy đoạn mã sau

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

nơi chỉ có phần này được tôi triển khai và có nghĩa vụ tải custom.script.js của tôi từ thư mục js /

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

Thật không may, nó không làm như vậy, bất cứ ai có thể giúp đỡ?

* Cập nhật 2

Mã trông giống như thế này và nó hoạt động, nó không hoạt động khi tôi chỉ thêm chức năng vào add_action khác. Cảm ơn mọi người đã giúp đỡ! Tôi vẫn tự hỏi nếu không có cách nào để cắt mã này một chút.

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

Dòng này để làm gì?

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

Có cần thiết không?


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

@Pieter Tôi đã điều chỉnh thay đổi của bạn nhưng nó vẫn không hoạt động. Đây là những gì tôi có trong tệp .js của mình và nó hoạt động nếu tôi đặt trực tiếp vào page.php, ví dụ: <script> if (jQuery) {alert ("Thư viện jQuery đã được tải!"); } other {alert ("Không tìm thấy thư viện jQuery!"); } </ script>
MrKainig

@Pieter Được rồi, tôi đặt mã trong câu hỏi
MrKainig 5/2/2015

Xóa các thẻ script khỏi tệp js của bạn
Pieter Goosen 5/2/2015

Câu trả lời:


31

Đây là một ví dụ hoạt động:

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

Hoặc như thế này dường như tải nhanh hơn:

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

Nguồn http://codex.wordpress.org/Function_Reference/wp_enqueue_script

get_template_directory_uri() sẽ chỉ làm việc trong một chủ đề phụ huynh.


1
Tại sao bạn không sử dụng get_stylesheet_directory_uri()?
Pieter Goosen

Cả hai đều hoạt động dựa trên thử nghiệm của tôi.
Brad Dalton

Tôi đã thử cái đầu tiên, nó không hoạt động. Bạn có thể đăng blog mã đầy đủ (bao gồm cả những mục tiêu hiện có và đang hoạt động của tôi) không? Bởi vì tôi không biết cách triển khai đúng mã của mình với mã đã có trong các hàm của
mình.php

2
Vâng, họ làm, nhưng get_stylesheet_directory_uri()nhanh hơn :-)
Pieter Goosen

Nó chỉ là một ví dụ làm việc. Một số công việc được yêu cầu thay mặt bạn để tìm hiểu cách thức hoạt động với mã của bạn. Bây giờ bạn có thể làm lại mã của mình để nó tải tập lệnh của bạn trong chủ đề của bạn.
Brad Dalton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.