내 자식 테마에 .js 파일을 큐에 넣고 싶습니다


16

자식 테마 디렉토리에 사용자 지정 .js 파일을 대기열에 넣으려고했습니다.

내 자식 테마의 functions.php에서 다음 코드를 찾습니다.

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

이 부분 만 나에 의해 구현되었으며 js / 폴더에서 custom.script.js를로드해야합니다.

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

불행히도 그렇게하지 않습니다, 아무도 도울 수 있습니까?

* 업데이트 2

코드는 이제 다음과 같이 보이고 작동하며 다른 add_action에 함수를 추가했을 때 작동하지 않았습니다. 도와 주셔서 감사합니다! 여전히이 코드를 조금 잘라내는 방법이 없는지 궁금합니다.

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

이 줄은 무엇입니까?

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

그게 필요 할까?


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

@Pieter 변경 사항을 조정했지만 여전히 작동하지 않습니다. 이것은 내 .js 파일에 포함되어 있으며 page.php에 직접 넣으면 작동합니다. <script> if (jQuery) {alert ( "jQuery library is loaded!"); } else {alert ( "jQuery 라이브러리를 찾을 수 없습니다!"); } </ script>
MrKainig

@Pieter 좋아요 질문에 코드를 입력했습니다
MrKainig

js 파일에서 스크립트 태그를 제거
Pieter Goosen

답변:


31

다음은 실제 예입니다.

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

또는 다음과 같이 분명히 더 빠르게로드됩니다.

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

소스 http://codex.wordpress.org/Function_Reference/wp_enqueue_script

get_template_directory_uri() 부모 테마에서만 작동합니다.


1
왜 사용하지 get_stylesheet_directory_uri()않습니까?
Pieter Goosen

둘 다 내 테스트를 기반으로 작동합니다.
Brad Dalton

첫 번째 시도했지만 작동하지 않았습니다. 전체 코드 블로그 (기존 및 작동중인 대기열 포함)를 게시 할 수 있습니까? 이미 이미 functions.php에있는 코드로 코드를 올바르게 구현하는 방법을 모르기 때문에
MrKainig

2
그렇습니다, 그러나 get_stylesheet_directory_uri()더 빠릅니다 :-)
Pieter Goosen

작동하는 예일뿐입니다. 코드와의 작동 방식을 배우려면 일부 작업이 필요합니다. 이제 코드를 재 작업하여 테마에 스크립트를로드 할 수 있습니다.
Brad Dalton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.