วิธีลบเวอร์ชันของไฟล์ออกจากลิงก์ซอร์สไฟล์ใน wp_head


9

ผมสังเกตภายในwp_headฟังก์ชั่นในการเชื่อมโยงแหล่งที่มาของทุก.css, .jsยื่น?ver=1( หรือหมายเลขอื่น ๆ ขึ้นอยู่กับรุ่นของแฟ้ม / ห้องสมุด ) จะมีการเพิ่ม ฉันจะเขียนทับพวกเขาเพื่อลบออกได้อย่างไร

ปัญหานี้ฉันคิดว่าทำให้เกิดปัญหากับส่วนรายการแคช

คำตอบ:


16

คุณสามารถขอเข้าstyle_loader_srcและscript_loader_srcและเรียกใช้remove_query_arg( 'ver', $url )ที่ 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 );
}

หากไม่มีปลั๊กอินนี้:

ป้อนคำอธิบายรูปภาพที่นี่

หลังจากเปิดใช้งานปลั๊กอิน:

ป้อนคำอธิบายรูปภาพที่นี่

มีกรณีหนึ่งที่จะล้มเหลวคือ: เมื่อมีคนไม่ได้ใช้สคริปต์ / style API แต่เพิ่มสตริงฮาร์ดโค้ดลงในส่วนหัว


ใช้เรียบร้อยremove_query_arg()แล้ว
henrywright

2

สิ่งนี้ใช้ได้กับฉันเมื่อฉันยังต้องโหลดสไตล์ชีทจาก 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]
    ;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.