태그 보관물: wp-enqueue-script

wp-enqueue-script

바닥 글에 스크립트를 넣을 수 없습니까? add_action(‘wp_enqueue_scripts’, ‘my_scripts_method’);

워드 프레스 코덱스 다음과 같이 말합니다 .

( 이전 코덱스 페이지 )

$ in_footer

(부울) (선택 사항) 일반적으로 스크립트는 섹션에 배치됩니다. 이 매개 변수가 true이면 스크립트가의 맨 아래에 배치됩니다. 이를 위해서는 테마에 적절한 위치에 wp_footer () 후크가 있어야합니다. 바닥 글에 배치 되더라도 wp_head가 실행되기 전에 스크립트를 큐에 넣어야합니다. (WordPress 2.8의 새로운 기능) 기본값 : false

그래서 true각 스크립트 뒤에 추가했습니다 src path.

/**
     * JavaScript
     */

    function my_scripts_method() {
        wp_deregister_script( 'jquery' );
        wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js', true );
        wp_enqueue_script( 'jquery' );
    }

    add_action('wp_enqueue_scripts', 'my_scripts_method');

    function media_queries_script() {
        wp_register_script( 'mediaqueries', get_template_directory_uri() . '/js/css3-mediaqueries.js', true );
        wp_enqueue_script( 'mediaqueries' );
    }

    add_action('wp_enqueue_scripts', 'media_queries_script');

    function custom_script() {
        wp_register_script( 'custom', get_template_directory_uri() . '/js/custom.js', true );
        wp_enqueue_script( 'custom' );
    }

    add_action('wp_enqueue_scripts', 'custom_script');

    function replace_script() {
        wp_register_script( 'replace', get_template_directory_uri() . '/js/jquery.ba-replacetext.min.js', true );
        wp_enqueue_script( 'replace' );
    }

    add_action('wp_enqueue_scripts', 'replace_script');

그러나 스크립트는 여전히 헤더에 포함되어 있습니다.

그 문제를 해결할 제안이 있습니까?



답변

코드를 어디에 넣었습니까?

  1. 은 “진정한”인수는 간다 wp_register_script();아닌wp_enqueue_script() ;

기능은 다음과 같습니다

<?php wp_enqueue_script('handle', 'src', 'deps', 'ver', 'in_footer'); ?>

의미

    <?php wp_enqueue_script('NameMySccript', 'path/to/MyScript',
'dependencies_MyScript', 'VersionMyScript', 'InfooterTrueorFalse'); ?>

EG

<?php
wp_enqueue_script('my_script', WP_CONTENT_URL . 'plugins/my_plugin/my_script.js', array('jquery', 'another_script'), '1.0.0', true);
?>

  1. <?php wp_footer(); ?> 페이지 끝에 테마가 있습니까?

3.로 액션 추가 add_action('wp_print_scripts', 'your function');

말한 것처럼, 모범 사례는 다음과 같습니다.

<?php
if (function_exists('load_my_scripts')) {
    function load_my_scripts() {
        if (!is_admin()) {
        wp_deregister_script( 'jquery' );
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js');
        wp_enqueue_script('jquery');
        wp_register_script('myscript', bloginfo('template_url').'/js/myScript.js'__FILE__), array('jquery'), '1.0', true );
        wp_enqueue_script('myscript');
        }
    }
}
add_action('init', 'load_my_scripts');
?>  

또는 add_action('wp_print_scripts', 'dl_register_js');


답변

종속성 매개 변수에 부울 값을 전달하고 있습니다. 이 시도:

 wp_enqueue_script(
      'replace',
       get_template_directory_uri().'/js/jquery.ba-replacetext.min.js',
       array('jquery'),
       '',
       true
);

답변

나는 같은 문제가 있었고 검색을 한 후에 내 맞춤 테마 에서이 기능이 누락되었습니다.

 <?php wp_footer();?>

답변

wp_enqueue_script 또는 wp_register_script를 사용하여 바닥 글에 스크립트를로드 할 때 다른 매개 변수도 비어 있어도 포함시켜야합니다.

난 노력했다..

wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js',  true);

@janoChen이 알아 차린대로 작동하지 않았습니다. 워드 프레스

wp_enqueue_script( $handle, $src, $deps, $ver, $in_footer );

따라서 '',함수를 인라인으로 선언하려면 사용하지 않는 매개 변수 를 포함해야합니다 . 따라서 아래 코드는 계획대로 작동합니다.

wp_register_script( 'rrssb', get_stylesheet_directory_uri() . '/includes/rrssb.min.js', '', '', true);

이후 @Brian Fegter 쇼와 같은 형식으로 배열에서 함수를 선언 할 수 있습니다.


답변

스크립트를 헤더에 대기열에 넣지 만 바닥 글에 대기열에 포함 된 스크립트에 대한 종속성을 선언하면 WordPress는 바닥 글 스크립트를 헤더로 이동하여 종속 스크립트에서 사용할 수 있도록합니다.


답변

공식 WordPress 문서에 따르면 (최종 확인-2018 년 5 월) :

https://developer.wordpress.org/reference/functions/wp_enqueue_script/

7 년 이상의 개인적인 경험.

  1. 설치된 플러그인 / 테마와의 호환성을 높이려면 항상 ‘ wp_enqueue_scripts ‘기능을 사용해야 합니다.

     add_action('wp_enqueue_scripts','your_plugin_enqueue');
  2. 공식 문서 사용법 에 대한 자세한 내용은 여기를 참조하십시오.

       /**** wp_register_script, wp_enqueue_script, wp_dequeue_script ***
    
             *** Personal recommendation
             *  - I strongly recommend registering all scripts before enqueueing,
             *  again -> for better compatibility with other developers.
             *  :::: For example, so others could manipulate the position
             *       of your scripts using the wp_dequeue_*type* method.
             *       (wp_dequeue_script, wp_dequeue_style,...)
    
             *** Official Docs
             *   $in_footer
             *      - (bool) (Optional) Whether to enqueue the script before </body> instead of in the <head>. Default 'false'.
             *      - Default value: false
             *
             ***/
    
             // examples:
    
      function your_plugin_enqueue(){
    
    
    
             wp_dequeue_script('some_script(s)'); // remove conflicting script
    
             wp_register_script( $handle, $src, $deps, $ver, $in_footer=true );
             wp_enqueue_script($handle);
             wp_register_script('some_script(s)', $src, $deps, $ver, $in_footer=true);  // re-enqueue scripts after yours for example to elimination of conflicts
    
             wp_enqueue_script('some_script(s)');
    
      }
    
    
      add_action('wp_enqueue_scripts','your_plugin_enqueue');

추신이 답변이 도움이된다면, ‘▲'( ArrowUP )로 알려주십시오. 개선 될 것이라고 생각되면 아래에 의견을 남겨 주십시오.


답변