क्या प्लगइन्स में इनलाइन सीएसएस को शामिल करना कभी ठीक है?


21

आम तौर पर एक प्लगइन में मैं wp_enqueue_style का उपयोग करके शैलियों को जोड़ूंगा। हालांकि, मैं वर्तमान में एक प्लगइन बना रहा हूं, जिसे केवल सीएसएस की कुछ लाइनों की आवश्यकता है और मैं सोच रहा हूं कि क्या अनुरोध को बचाने के लिए स्टाइल इनलाइन की सेवा करना बेहतर हो सकता है। जाहिर है wp_enqueue_style का उपयोग करने के कई फायदे हैं, लेकिन क्या वे सीएसएस के इतने छोटे टुकड़े के लिए अतिरिक्त अनुरोध के लायक हैं? क्या इस क्षेत्र में कोई स्वीकृत 'सर्वोत्तम अभ्यास' है?

जवाबों:


14

टी एल; डॉ; Enqueue

बाहरी स्टाइलशीट का उपयोग करना

  • प्रो: आपकी सभी शैलियाँ एक स्थान पर हैं।
  • प्रो: वेब पेज कोडिंग कम कर देता है।
  • प्रो: प्लगइन को बनाए रखने के लिए आसान।
  • प्रो: फ़ाइल के स्थान को बदलने के लिए हुक का उपयोग कर सकते हैं।
  • प्रो: फ़ाइल को हटाने के लिए हुक का उपयोग कर सकते हैं।
  • प्रो: स्वचालित रूप से minify शैलियों का उपयोग कर सकते हैं।
  • CON: अतिरिक्त HTTP अनुरोध जोड़ सकते हैं (पर काबू पाया जा सकता है)।

इनलाइन शैलियों का उपयोग करना

  • प्रो: सीधे लागू शैली देख सकते हैं।
  • प्रो: कोई अतिरिक्त HTTP अनुरोध नहीं।
  • कॉन: शैलियों को बदलने के लिए हुक का उपयोग नहीं कर सकते।
  • कॉन: शैलियों को एकरूप करने के लिए हुक का उपयोग नहीं किया जा सकता है।
  • CON: शैलियों को बिल्कुल भी छोटा नहीं कर सकते।
  • कांग्रेस: शैली को ओवरराइड करने की आवश्यकता !

आम तौर पर मैं कहूंगा: निश्चित रूप से, यदि आप इसका उपयोग करने वाले एकमात्र व्यक्ति हैं, तो आगे बढ़ें और इसे इनलाइन करें। लेकिन आप एक ऐसे प्लगइन के बारे में बात कर रहे हैं जिसका अर्थ है कि कोड सार्वजनिक होगा, इसलिए इसका विस्तार करने का लक्ष्य होगा । अभी आपके पास स्टाइल की कुछ पंक्तियाँ हैं:

  • कांग्रेस: क्या होगा अगर वह कुछ और हो जाए?
  • कांग्रेस: क्या होगा अगर कोई आपके प्लगइन का विस्तार करता है?
  • कांग्रेस: क्या होगा अगर कोई इसे बदलना चाहता है?
  • कांग्रेस: क्या होगा अगर कोई इसे सीएसएस फाइलों में खोजता है?
  • कांग्रेस: क्या होगा अगर कोई इसे स्वचालित रूप से छोटा करना चाहता है?

इसलिए, enqueue। (अधिमानतः सशर्त रूप से केवल अगर प्लगइन को इसकी आवश्यकता है।) यही जावास्क्रिप्ट पर लागू होता है । (लेकिन यदि संभव हो तो पाद लेख में शामिल किया जाना चाहिए।)


क्या बैकएंड पर इनलाइन शैलियों का उपयोग करना ठीक है?
शिया

@bungeshea यदि कोई आपका प्लगइन बदलने जा रहा है, तो वे बैकएंड को भी सही में बदलना चाह सकते हैं;) सुनिश्चित करें कि आप बैकएंड पर केवल स्क्रिप्ट को एंक्यू करते हैं। उदाहरण के लिए: function _your_enqueue( $hook )यह देखने के लिए कि क्या आपके विकल्प पृष्ठ पर $ हुक का परीक्षण किया जा सकता है। वैकल्पिक रूप से आप सरल गुणों के current_screen()लिए उपयोग कर सकते हैं । बात यह है, आपको ऐसा करने की अनुमति है, लेकिन सामान्य उपयोग एक प्लगइन है जिसमें सर्वरसाइड कोड के लिए एक .php फ़ाइल होती है और इसमें चित्र, .js और .css फाइलें हो सकती हैं।
डर्क-जनवरी

1
आप ध्यान दें कि अतिरिक्त http अनुरोध को दूर किया जा सकता है - क्या आप इसे स्पष्ट कर सकते हैं?
डस्टिन

2
आप नहीं कर सकते, लेकिन प्लगइन का उपयोगकर्ता कर सकता है। पेज के आउटपुट से ठीक पहले कई प्लगइन्स और फ़ंक्शंस लिखे गए हैं, सभी एन्क्लेव्ड स्टाइल प्राप्त करें और उन्हें एक छोटा, संयुक्त फ़ाइल में जोड़ें। आप कितनी भी सीएसएस फाइलें जोड़ लें, दर्शक केवल एक ही देखेंगे। जावास्क्रिप्ट के लिए भी। हालाँकि, यह आपके मामले में है आपकी 'समस्या' नहीं। यह ऑप्टिमाइज़ेशन है जिसकी आवश्यकता नहीं है और imho, अतिरिक्त HTTP अनुरोध थोड़े सभी PRO के खिलाफ कम हो जाता है।
Derk-Jan

1
अंतिम वाक्य के बारे में - AFAIK शैलियों को हेडर में आउटपुट होना चाहिए न कि पाद
मार्क कप्लून

2

यह जवाब देना मुश्किल है और अगर आधिकारिक जवाब है तो मुझे यकीन नहीं होगा।

मैं एक अनुरोध को बचाने के बारे में भावना को समझता हूं लेकिन इनलाइन शैली बहुत हमेशा जीतती है। एक थीम या अंतिम उपयोगकर्ता के पास आपके सीएसएस को बदलने में एक कठिन समय होगा।

इस बात को ध्यान में रखते हुए, मुझे लगता है कि मैं सार्वजनिक रूप से जारी किए गए प्लगइन में ऐसा करूंगा ...

  1. यदि सीएसएस प्लगइन के कामकाज के लिए बिल्कुल महत्वपूर्ण है , जैसा कि स्लाइडशो के मामले में है, उदाहरण के लिए।

  2. या, अगर मैंने प्लगइन में एक फ़िल्टर भी शामिल किया है जो इनलाइन सीएसएस को बदलने या निकालने की अनुमति देता है।

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