Làm cách nào để xóa phiên bản tệp khỏi liên kết nguồn tệp trong wp_head?


9

Tôi đã quan sát bên trong wp_headhàm trong các liên kết nguồn của mọi tệp .css, .jsmột tệp ?ver=1( hoặc số khác dựa trên phiên bản thư viện / thư viện ) được thêm vào. Làm thế nào tôi có thể ghi đè lên chúng, để loại bỏ chúng?

Vấn đề này tôi nghĩ là gây ra vấn đề trên phần kê khai bộ đệm.

Câu trả lời:


16

Bạn có thể móc vào style_loader_srcscript_loader_srcvà chạy remove_query_arg( 'ver', $url )trên URL:

<?php
/* Plugin Name: Remove version parameter for scripts and styles */

add_filter( 'style_loader_src', 't5_remove_version' );
add_filter( 'script_loader_src', 't5_remove_version' );

function t5_remove_version( $url )
{
    return remove_query_arg( 'ver', $url );
}

Không có plugin này:

nhập mô tả hình ảnh ở đây

Sau khi kích hoạt plugin:

nhập mô tả hình ảnh ở đây

Có một trường hợp sẽ thất bại: Khi ai đó không sử dụng API tập lệnh / kiểu, nhưng đã thêm một chuỗi mã hóa cứng vào tiêu đề.


Sử dụng gọn gàng remove_query_arg().
henrywright

2

Điều này làm việc cho tôi khi tôi vẫn phải tải biểu định kiểu từ Google Fonts.

<?php
add_filter( 'script_loader_src', 'wpse130419_remove_script_version', 15, 1 );
add_filter( 'style_loader_src',  'wpse130419_remove_script_version', 15, 1 );
function wpse130419_remove_script_version( $src ) {

    $url = explode( '?', $src );

    if ( $url[0] === 'http://fonts.googleapis.com/css' ) :
        $version = explode( '&ver=', $url[1] );
        $url[1]  = $version[0];
    endif;

    return ( $url[0] === 'http://fonts.googleapis.com/css' ) 
        ? "{$url[0]}?{$url[1]}"
        : $url[0]
    ;
}
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.