क्या मुझे Word_title, the_excerpt, the_content जैसे वर्डप्रेस फ़ंक्शंस से बचना चाहिए


15

मैंने कोड को देखा था, लेकिन मैं किसी भी तरह से फंगल पर भागने से नहीं बच पाया, the_title the_content the_excerptजैसे कि मैं इसे सही नहीं पढ़ रहा हूं। क्या मुझे थीम विकास में इन कार्यों से बचने की आवश्यकता है:

esc_html ( the_title () )

संपादित करें: जैसा कि उपरोक्त कोड के नीचे दिए गए उत्तरों में इंगित किया गया है, भले ही गलत हो - कोड को पढ़ना चाहिए esc_html ( get_the_title () )


नहीं, वे कार्य पहले से ही स्वीकृत हैं, इसलिए इसकी आवश्यकता नहीं है। उस मामले को छोड़कर, the_contentजो TinyMCE संपादक से HTML आउटपुट करता है, जिसमें आप इनपुट करते हैं। यह आपके उपयोगकर्ताओं द्वारा उदाहरण के लिए सामने के छोर पर बनाए गए फॉर्म इनपुट या डेटा के लिए अधिक आरक्षित है।
एडम

जवाबों:


15

एस्केपिंग पूरी तरह से उस संदर्भ पर निर्भर करता है जिसमें आप फ़ंक्शन का उपयोग कर रहे हैं। अंदर के <h1>टैग प्रदर्शित करने के लिए क्या सुरक्षित है , valueइनपुट क्षेत्र की विशेषता के लिए प्रदर्शित करना आवश्यक रूप से सुरक्षित नहीं है, और यहां तक ​​कि जरूरी नहीं कि एक hrefविशेषता मूल्य के रूप में सुरक्षित हो ...।

संक्षेप में - अपने आप को आउटपुट के रूप में आप स्वच्छता का प्रदर्शन करते हैं। हालांकि के मामले में the_title ()या get_the_title (), esc_htmlके बाद से वर्डप्रेस निम्नलिखित कार्य लागू होता है, आवश्यक नहीं है:

नोट: the_title शीर्षक प्रिंट करता है - इसलिए esc_html ( the_title () )काम नहीं करेगा। इसी तरह, the_contentसामग्री को प्रिंट करता है (किसी भी मामले में, आप HTML प्रदर्शित करने के लिए सामग्री की अपेक्षा करेंगे)।


उफ़ मूर्खतापूर्ण ... हां हां बेशक esc_html (the_title ()) काम नहीं करेगा। आपके उत्तर के लिए धन्यवाद।
बायरोनसगुर

4
संबंधित: एक HTML विशेषता में पोस्ट शीर्षक का उत्पादन करने के लिए , उपयोगthe_title_attribute()
चिप बेनेट

6

हां और नहीं - इस बात पर निर्भर करता है कि आप उन कार्यों में HTML आउटपुट चाहते हैं या नहीं। यदि आप बचते हैं the_content(), उदाहरण के लिए, और इसमें एक <div>टैग होता है , तो वह टैग वास्तव में पृष्ठ के &lt;div&gt;बजाय आउटपुट पर होगा ।

वैसे, यदि आप उन कार्यों के आउटपुट से बच जाते हैं, तो आप उनके "get_" समकक्षों (उदाहरणों get_the_content()) का उपयोग करना चाहेंगे क्योंकि ये फ़ंक्शन सीधे उनके आउटपुट को प्रतिध्वनित करते हैं।


0

आप बस इस तरह से एक फ़ंक्शन लिख सकते हैं और इसे the_title फ़िल्टर को हुक कर सकते हैं :

function my_escape_title( $title ){
    return esc_html( $title );
}
add_filter( 'the_title', 'my_escape_title' );
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.