वर्धित शैलियाँ और लिपियों पर संस्करण URL पैरामीटर (? Ver = XXX) रोकें


12

उदाहरण

मैं क्रोम के देव उपकरण कार्यक्षेत्र सुविधाओं के साथ प्रयोग कर रहा हूं। इसमें सीधे देव टूल्स में एक फ़ाइल को संपादित करने की क्षमता शामिल है और सहेजे गए स्टाइलशीट को स्वयं ताज़ा करें (या यहां तक ​​कि संकलित करें और फिर ताज़ा करें!)।

हालाँकि, StackOverflow के प्रश्न में "क्रोम के" ऑटो-रीलोड जेनरेट किए गए CSS "पृष्ठ को पुनः लोड नहीं किया जा रहा है जब SASS recompiles CSS" के अनुसार , स्टाइलशीट URL पर URL पैरामीटर क्रोम को परिवर्तन को नोट करने से रोकते हैं।

वांछित परिणाम

इसका मतलब है कि केवल विकास के दौरान , मैं ?ver=X.X.Xसामान्य स्टाइलशीट <link>आउटपुट से हटाना चाहता था wp_enqueue_style()। दूसरे शब्दों में, मैं डिफ़ॉल्ट चाहता था href:

http://localhost/mysite/wp-includes/style.css?ver=4.1.1

इसके बजाय यह हो:

http://localhost/mysite/wp-includes/style.css

जवाबों:


12

डिफ़ॉल्ट wp_enqueue_[style/script]()व्यवहार

के लिए डिफ़ॉल्ट मान $versionतर्क की wp_enqueue_style()है false। हालाँकि, उस डिफ़ॉल्ट का अर्थ है कि स्टाइलशीट को इसके बजाय वर्डप्रेस संस्करण दिया गया है ।

उपाय

"हटाए गए वर्डप्रेस से सीएसएस और जेएस के संस्करण को धन्यवाद " , मैंने अनिर्दिष्ट तथ्य सीखा कि nullएक संस्करण के रूप में गुजरने से संस्करण पूरी तरह से हट जाएगा!

उदाहरण

wp_enqueue_style( 'wpse-styles', get_template_directory_uri() . '/style.css', array(), null );

कैविएट रिमाइंडर

यह इंगित करने के लायक है, जैसा कि प्रश्न में उल्लेख किया गया है, कि यह संभवतः केवल विकास के दौरान किया जाना चाहिए (विशिष्ट usecase के रूप में)। संस्करण पैरामीटर साइट आगंतुकों के लिए कैशिंग (और कैशिंग नहीं) के साथ मदद करता है और इसलिए संभवतः 99% मामलों में अकेला छोड़ दिया जाना चाहिए।


8

आपकी पोस्ट के लिए धन्यवाद, mrwweb

मुझे इसका एक और समाधान मिला, एक बहुत ही सरल प्लगइन बनाकर आप निष्क्रिय कर सकते हैं जब साइट अब विकास के अधीन नहीं है।

<?php

/*
Plugin name: Strip WP Version in Stylesheets/Scripts
*/

function switch_stylesheet_src( $src, $handle ) {

        $src = remove_query_arg( 'ver', $src );
        return $src;
}
add_filter( 'style_loader_src', 'switch_stylesheet_src', 10, 2 );

?>

मैंने इस समाधान को खोजने के लिए कुछ मिनट बिताए। सोचा कि मैं एक नया प्रश्न / उत्तर बनाने के बजाय एक और विकल्प यहाँ साझा कर सकता हूँ।


काम नहीं करता है ...
reggie

यह सही जवाब है। विकसित होते समय इस फ़िल्टर का उपयोग करें और इसे एक बार लाइव होने पर हटा दें।
dtbaker

Dequeue और कतार शैलियों की तुलना में बेहतर है। फ़िल्टर के साथ स्क्रिप्ट पर भी लागू होता हैscript_loader_src
धर्म
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.