prosource

WordPress 전면에서 jquery를 제거하려면 어떻게 해야 합니까?

probook 2023. 2. 16. 21:54
반응형

WordPress 전면에서 jquery를 제거하려면 어떻게 해야 합니까?

내 워드프레스 사이트는 다운로드가 좀 무거워.프런트 엔드에는 불필요한 jquery가 포함되어 있습니다.내 파이어버그에서는 다음과 같이 보인다.

jquery.js?ver=1.3.2

그리고.

jquery.form.js?ver=2.02m

이것들은 나를 위해 포함시킬 필요가 없다.

wp-admin에 남아 있는 것은 좋지만 프런트엔드에 로드하지 않았으면 합니다.

로딩하고 있는 파일을 찾았습니다.wp-includes/script-loader.php그런데 어떻게 해야 앞부분에서 완전히 제거할 수 있을지 모르겠어요.

뒷부분을 망치지 않고 찌꺼기를 제거하는 방법은 없을까?

스타일 또는 스크립트를 완전히 삭제하는 올바른 방법은 를 해제하고 등록을 취소하는 것입니다.프론트 엔드 스크립트는 후크를 통해 처리되며 백엔드 스크립트는 후크를 통해 처리된다는 점도 유의하십시오.

이 점을 염두에 두고 다음 작업을 수행할 수 있습니다.

add_filter( 'wp_enqueue_scripts', 'change_default_jquery', PHP_INT_MAX );

function change_default_jquery( ){
    wp_dequeue_script( 'jquery');
    wp_deregister_script( 'jquery');   
}

편집 1

이것은 Wordpress 버전 4.0에서 완전히 테스트되었으며 예상대로 작동합니다.

편집 2

개념 증명으로 다음 코드를 functions.php에 붙여넣습니다.사이트 헤드, 백엔드 및 프론트엔드에 성공 또는 실패 메시지가 표시됩니다.

add_action( 'wp_head', 'check_jquery' );
add_action( 'admin_head', 'check_jquery' );
function check_jquery() {

    global $wp_scripts;

    foreach ( $wp_scripts->registered as $wp_script ) {
        $handles[] = $wp_script->handle; 
    }

    if( in_array( 'jquery', $handles ) ) {
        echo 'jquery has been loaded';
    }else{
        echo 'jquery has been removed';
    }
}

테마에 따라 JQuery가 추가될 수 있습니다.테마가 적절한 추가일 경우, 이 테마는 다음 명령어를 사용해야 합니다.wp_enqueue_script()기능.JQuery를 삭제하려면wp_deregister_script()기능.

wp_deregister_script('jquery');

전체 사이트의 JQuery를 제거하면 관리 섹션에 의도하지 않은 결과가 발생할 수 있습니다.관리 페이지에서 JQuery를 삭제하지 않으려면 대신 다음 코드를 사용하십시오.

if ( !is_admin() ) wp_deregister_script('jquery');

이제 관리 페이지가 아닌 페이지만wp_deregister_script()기능.

이 코드를 함수에 추가합니다.php 파일을 테마 디렉토리에 저장합니다.

다른 모든 솔루션은 Wordpress 3.6 현재 구식입니다.

add_filter( 'wp_default_scripts', 'change_default_jquery' );

function change_default_jquery( &$scripts){
    if(!is_admin()){
        $scripts->remove( 'jquery');
        $scripts->add( 'jquery', false, array( 'jquery-core' ), '1.10.2' );
    }
}

Wordpress는 이 jQuery 호출을 다음과 같은 템플릿태그를 사용하여 추가합니다.<?php wp_head(); ?>이는 대부분의 테마에 나타나며 일부 플러그인이 작동하기 위해 필요합니다.

로딩뿐만 아니라 이전에 로드된 jQuery가 중단될 수 있으며 jQuery를 로드하려는 일부 플러그인이 방해가 될 수도 있기 때문에 번거로울 수 있습니다.

빠른 수정은 파일 헤더를 여는 것입니다.php는 테마의 디렉토리에 추가되어 있습니다.

<?php wp_deregister_script('jquery'); ?>

직전에

<?php wp_head(); ?>

또는 이 둘을 조합하여 다음과 같이 할 수 있습니다.

<?php wp_deregister_script('jquery'); wp_head(); ?>

자세한 설명은 이쪽에서 확인할 수 있습니다.

function my_init() {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', false);
    }
}
add_action('init', 'my_init');

정답 - jquery 라이브러리 js를 제거합니다.다른 응답의 코드가 모든 js(설치된 플러그인이 추가한 js도)를 제거합니다.

4.3.1에서 테스트 완료

WordPress 5 이상(테스트 완료)

기본 jquery를 제거하고 폴더 또는 CDN에서 jquery를 추가합니다.'local' 또는 'cdn' 중 하나만 사용하십시오.

// Remove the WordPress default jquery
wp_deregister_script( 'jquery' );

// using a local file
wp_enqueue_script(
  'jquery', get_template_directory_uri() . '/lib/jquery-3.3.1.min.js','', '3.3.1', true
);

// using CDN
wp_enqueue_script(
    'jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js', '', '3.3.1', true
);

// $handle: 'jquery'
// $src: 
    // local: get_template_directory_uri() . '/lib/jquery-3.3.1.min.js'
    // cdn: '//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'
// $deps: '' (leave it empty)
// $ver: '3.3.1'
// $in_footer: true (boolean)

구문

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

테마 파일을 조사합니다.

wp-content/syslogs/syslogs.php

에는 .disc 파일을 포함할 수 있습니다.

대부분의 워드프레스 주제에서.관리 패널(wp-admin)에서 사용되는 jQuery 또는 제품 페이지에서 사용되는 jQuery.속도를 높여야지 이거면 될 거야WP 5.0 jQuery에서 테스트된 것은 관리자 또는 해당 제품 페이지에 로그인한 경우에만 로드됩니다(제품 페이지에 사용자가 로그인했는지 여부에 관계없이 상관 없음).(j쿼리 로드(제품 페이지))

function my_jquery_remove() {
    if ( ! is_admin() && !is_product() ) {
       wp_deregister_script('jquery');
       wp_register_script('jquery', false);
    }
}
add_action('init', 'my_jquery_remove');

페이지의 가 포함되어 있는 . 워드프레스.<?php wp_head(); ?>header 。php로 호출되므로 사이트에 jQuery가 포함되어 있는 경우가 있습니다.

「」를 <?php wp_head(); ?>header.php에서는 그 시점에서 많은 플러그인이 Wordpress에 "훅"되어 있기 때문에 다른 플러그인 기능을 느슨하게 할 수 있습니다.

하지만 jQuery를 포함시키는 것은 그리 큰 문제가 아닙니다.작아서 워드프레스에 따라 달라지는 것도 있어요.

jQuery를 등록 해제함으로써 "이벤트" 페이지 로드 속도를 2.2초 단축할 수 있었습니다.jQuery는 좋지만 제 생각에는 페이지 속도가 훨씬 더 중요합니다.

사용자가 5초 이상 머무를 수 없기 때문에 jQuery가 퍼포먼스 문제를 일으키고 있다면 삭제하도록 지시합니다.

jQuery.js는 미니 버전을 사용하는 경우 15KB에 불과하며, 필요하지 않은 테마를 사용하는 경우 전혀 필요하지 않습니다.

js파일을 찾고 있기 때문에 jQuery를 해킹하여 테마가 여러 곳에서 부서지는 것을 보는 대신 jQuery를 사용하지 않고 가벼운 테마를 찾아야 합니다.

언급URL : https://stackoverflow.com/questions/1157531/how-can-i-remove-jquery-from-the-frontside-of-my-wordpress

반응형