प्लगइन सीएसएस को खत्म करने का सबसे अच्छा तरीका?


36

वर्तमान में, मैं प्लगइन शैलियों को ओवरराइड करने के लिए सीएसएस विशिष्टता का उपयोग करता हूं। मैं प्लगइन को संपादित करने के लिए इसे पसंद करता हूं क्योंकि जब आप अपडेट करते हैं तो यह कम सिरदर्द बनाता है।

यह अच्छा होगा यदि मेरी स्टाइल शीट को प्लग इन के बाद लोड किया जाए, ताकि मुझे केवल विशिष्ट होना चाहिए, अधिक नहीं। यह मेरे स्टाइलशीट को बहुत सुंदर बना देगा।


1
सीएसएस विशिष्टता के बारे में मुझे सिखाने के लिए upvote, अपने प्रश्न से पहले कभी नहीं सुना और इसने मुझे एक गुच्छा बनाने में मदद की!
luke_mclachlan

जवाबों:


21

जैसा कि आप सुझाव देते हैं, सबसे सुरुचिपूर्ण दृष्टिकोण तब होता है जब आपके सीएसएस ओवरराइड को प्लगइन्स द्वारा सीएसएस इंजेक्ट किए जाने के बाद लोड किया जाता है। यह हासिल करना काफी आसान है - आपको यह सुनिश्चित करने की ज़रूरत है कि आपकी header.phpकॉल wp_head()से पहले यह आपकी शैली पत्रक का संदर्भ दे:

<head>
    <!-- all the usual preamble stuff goes here -->

    <?php wp_head(); ?>

    <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" />
</head>

और क्या होगा अगर मैं एक बाल विषय का उपयोग कर रहा हूं? मुझे अपने मूल विषय के शीर्ष लेख को ओवरराइड करना पसंद नहीं है।
जूल्स

19

कई तरीके हैं जो प्लगइन्स सीएसएस को संभाल सकते हैं।

  • सबसे अच्छा मामला: प्लगइन कतार सीएसएस और इसे निष्क्रिय करने का विकल्प प्रदान करता है (इसे अक्षम करें, सीएसएस कोड को अपनी स्टाइलशीट में कॉपी करें और खुश रहें);
  • अच्छा मामला: प्लगइन्स हुक कार्य करता है जो शैली को छोड़ देता है (अनहुक फ़ंक्शन, यदि आवश्यक हो तो मॉड के साथ अपना खुद का हुक करें);
  • सामान्य स्थिति: प्लगइन कतार सीएसएस सीधे। देखें कैसे एक स्क्रिप्ट को धोखा देने के लिए? (शैलियों पर भी लागू होता है)। लघु संस्करण - भविष्य के WP रिलीज में एक फेक फ़ंक्शन होगा, क्योंकि अब इसके साथ काम किया जा सकता हैwp_deregister_*
  • बुरा मामला: प्लगइन अन्य चीजों के गुच्छा के बीच सीएसएस echoes। विषयानुसार...

कुल मिलाकर मेरी राय में अलग-अलग स्टाइलशीट को निष्क्रिय करना और उन्हें कम करना और उन्हें खुद में शामिल करना मुद्दों को कम करने और प्रदर्शन में सुधार लाने के लिए है (कम फाइलें लाने के लिए)।


मुझे कैसे पता चलेगा कि यह कौन सा है?
इयानिंगटन

1
ज्यादातर कोड को देखकर। :)
ररस्ट

1

मैं थीम फ़ोल्डर में "इच्छुक नहीं" प्लगइन सीएसएस की एक प्रति सहेजता हूं और इसे जोड़कर थीम सीएसएस में आयात करता हूं

@import url('name-of-the-plugin-css.css');

इसे (प्रतिस्थापित करना, निश्चित रूप से, .css का नाम जिसे मैं इंजेक्ट कर रहा हूं)। फिर मैं थीम फ़ोल्डर में सीएसएस कॉपी को संशोधित करता हूं और इसे सर्वर पर सहेजता हूं जैसा कि मैं अन्य फाइलों के लिए करता हूं। ओह, हाँ, कभी-कभी यह आईडी या कक्षाओं को "कील" करने के लिए आवश्यक हो सकता है और उन्हें "महत्वपूर्ण" बताकर बदल दिया जाता है।

मुझे नहीं पता कि यह कला की स्थिति है, लेकिन यह कोई नुकसान नहीं पहुंचाता है और ठीक काम करता है।


1

एक और सुंदर तरीका है सीएसएस की विशिष्टता का उपयोग करना।

तो अगर प्लगइन का सीएसएस कहता है:

div.product div.images img {
  ......
}

आप अपने सीएसएस में परिभाषित करते हैं:

body div.product div.images img {
  ......
}

इसी तरह के सवाल के लिए माइकल रेडर का जवाब भी देखें ।


ठीक है आपका बहुत बहुत धन्यवाद। यह मेरे लिए स्वीकृत उत्तर होगा। बस सामान्य शैली का उपयोग करें। चमक और विशिष्टता चमक की तरह काम करती है!
लुका रेजेलिन

0

प्लगइन के सीएसएस को ओवरराइड करने के लिए, जो पहले से ही विशिष्टता का उपयोग कर रहा था और महत्वपूर्ण है, मैंने कक्षाओं को ओवरराइड करने के लिए आईडी का उपयोग किया। इससे मेरा कोड थोड़ा साफ हो गया। बेशक, यह भी एक सही समाधान नहीं है कि यह केवल तभी काम करता है जब आईडी में तत्वों के साथ-साथ कक्षाओं को भी सौंपा गया हो।

तुम भी सिद्धांत में विशेषता चयनकर्ताओं का उपयोग कर सकते हैं। हालाँकि, मुझे अभी तक परीक्षण करने के लिए उस सिद्धांत को रखना है।


0

मैं अपने कस्टम सीएसएस के लिए महत्वपूर्ण का उपयोग कर समाप्त हो गया और उस प्लगइन की स्टाइलिंग को ओवरराइड कर दिया जिससे मुझे परेशानी हो रही थी। प्लगइन का डेवलपर उपयोग कर रहा था! पूरे प्लगइन सीएसएस में महत्वपूर्ण है और यही कारण है कि मैं इसे बिना महत्वपूर्ण नहीं लिख सकता।

body {
font-family: "Open Sans", Arial, sans-serif !important;
font-weight: 300 !important;    
}

-1

प्लगइन के सीएसएस को ओवरराइड करने के लिए, जो पहले से ही विशिष्टता का उपयोग कर रहा था और महत्वपूर्ण है, मैंने कक्षाओं को ओवरराइड करने के लिए आईडी का उपयोग किया। इससे मेरा कोड थोड़ा साफ हो गया। बेशक, यह भी एक सही समाधान नहीं है कि यह केवल तभी काम करता है जब आईडी में तत्वों के साथ-साथ कक्षाओं को भी सौंपा गया हो।

तुम भी सिद्धांत में विशेषता चयनकर्ताओं का उपयोग कर सकते हैं। हालाँकि, मुझे अभी तक परीक्षण करने के लिए उस सिद्धांत को रखना है।

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