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


18

मुझे अपने द्वारा बनाई जा रही कस्टम थीम के शीर्ष लेख में कस्टम इनलाइन शैलियों को जोड़ने की आवश्यकता है। मैं wp_add_inline_style()समारोह में आया हूं , जो काम करता है लेकिन वास्तव में मुझे सूट नहीं करता क्योंकि यह एक विशिष्ट स्टाइलशीट पर निर्भर करता है। मुझे बिना स्टाइलशीट निर्भरता के हेड टैग के अंत में इनलाइन शैलियों को जोड़ना होगा।

मैंने थीम स्टाइलशीट या न के बराबर मौजूद करने की कोशिश की है। दोनों मामलों में, यह काम करता है लेकिन यह एक गंदा हैक आईएमओ का एक सा है (या तो थीम स्टाइलशीट को दो बार लोड करें या एक भूत फ़ाइल का संदर्भ लें ...)। क्या स्टाइलशीट के आधार पर बिना सिर के इनलाइन स्टाइल जोड़ने का उचित तरीका है?

बेशक, मैं उन्हें सीधे शीर्ष लेख में जोड़ सकता हूं। पीपीपी फाइल लेकिन मैं इससे बचना चाहूंगा।

जवाबों:


24

आपको बस शैलियों को सीधे पेज हेड में जोड़ना होगा। ऐसा करने का सबसे अच्छा तरीका 'wp_head' एक्शन हुक का उपयोग करना है, यह मानते हुए कि आप उस थीम का उपयोग कर रहे हैं जिसमें हुक है। इस तरह:

add_action('wp_head', 'my_custom_styles', 100);

function my_custom_styles()
{
 echo "<style>*{color: red}</style>";
}

कार्रवाई के हुक के बारे में अधिक जानने के लिए WP कोडेक्स देखें


कोई दिक्कत नहीं है! मैं खुशी से मदद कर सकता है।
SkyShab

यदि (मेरी तरह) आप डैशबोर्ड पृष्ठों पर कस्टम इनलाइन सीएसएस जोड़ना चाहते हैं, तो आप admin_headकार्रवाई का उपयोग कर सकते हैं ।
वह ब्राज़ीलियन गाय

16

आप बस "डमी" हैंडल का उपयोग कर सकते हैं:

wp_register_style( 'dummy-handle', false );
wp_enqueue_style( 'dummy-handle' );

wp_add_inline_style( 'dummy-handle', '* { color: red; }' );

मैं वास्तव में इस समाधान को पसंद करता हूं क्योंकि मेरी शैली में एक हैंडल है और जैसे कि यह एक .css फ़ाइल से शामिल है।
dev_masta

Wp_register_style के स्रोत के रूप में गलत का उपयोग करना भी दस्तावेज़ीकरण कोड x.wordpress.org/Function_Reference/… के
16patsle

3

आपकी थीम में निश्चित रूप से एक डिफ़ॉल्ट स्टाइलशीट है (अन्यथा यह एक विषय के रूप में भी लोड नहीं होगा)। बस अपने इनलाइन सीएसएस के लिए हैंडलर के रूप में इस बहुत ही स्टाइलशीट का उपयोग करें। एक उदाहरण के कार्यों में पाया जा सकता है। विषय के ट्वेंटीफ़ाइफ़ (कोड संक्षिप्तता के लिए छोड़ दिया गया):

function twentyfifteen_scripts() {
    wp_enqueue_style( 'twentyfifteen-style', get_stylesheet_uri() );

}
function twentyfifteen_post_nav_background() {
    wp_add_inline_style( 'twentyfifteen-style', $css );
}

1
ओपी ने विशेष रूप से wp_add_inline_style () का उपयोग करने के अलावा एक विधि मांगी। दोनों तरीके काम करते हैं, और मुझे wp_add_inline_style () के साथ जाने के लिए कोई सम्मोहक कारण नहीं मिला है। यदि आप एक कारण जानते हैं, तो मैं इसके बारे में जानना चाहूंगा।
SkyShab

आपका समाधान काम करता है, लेकिन यह अभी भी "हैकी" है कुछ के अनुसार मैंने एक बार WP टीम के किसी व्यक्ति से सुना (यदि मैं गलत नहीं हूं); बिल्कुल मेरी राय नहीं । मुझे लगता है कि ओपी सोच रहा था कि स्टाइल शीट को दो बार लोड करने या भूत हुक का उपयोग किए बिना ऐसा करने का कोई तरीका नहीं था। वैसे भी, अगर वे एक प्लगइन संलेखन नहीं कर रहे हैं, वहाँ हमेशा साथ जाने के लिए एक विषय की शैली शीट है। मैं अपना उत्तर भी संपादित कर रहा हूं क्योंकि आपके समाधान को कोडेक्स में दर्ज़ किया गया है। :)
कैस्पर

मैंने wp_add_inline_style () के साथ खेला, और यही मुझे मिला। शैलियों को स्टाइलशीट में संलग्न करने का लाभ यह है कि अगर यह समाप्त हो जाती है, तो शैलियों को प्रिंट नहीं किया जाएगा। लेकिन या तो विधि उन्हें सिर में इनलाइन प्रिंट करती है। तो कहते हैं कि आप एक प्लगइन डेवलपर हैं, और आपकी शैली सिर में मुद्रित होती हैं। इसका विषय शैलियों से कोई लेना-देना नहीं है, और इसलिए यदि किसी बच्चे के विषय ने इसे उपयोग करने के लिए मुख्य विषय शैलियों को समाप्त कर दिया है, तो अब आपकी प्लगइन शैली आउटपुट नहीं हो रही है। इसलिए, ओपी ने इस कारण अनुरोध के उस हिस्से को निर्दिष्ट किया हो सकता है।
स्काईशैब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.