संक्षिप्त कोड में मैं 'a' से कैसे बच सकता हूं?


17

मैं एक संक्षिप्त कोड में एक सही कोष्ठक से कैसे बचूँ?

मैं एक Google मानचित्र प्लगइन पर काम कर रहा हूं जिसमें अंक एन्कोड किए गए हैं। कभी-कभी इसमें बहुभुज होते हैं], जिससे WP को लगता है कि यह शोर्ट का अंत है।

उदाहरण के लिए:

[my_shortcode latitude='36.93'  longitude='-72.98' encoded_points='ortlF~g]tM?cZEH`z]}|@DQfi]' ]

मैंने कोशिश की है ]जो WP के लिए कोई समस्या पैदा नहीं कर रहा है , लेकिन यह मेरे Google मानचित्र कोड के लिए समस्या पैदा कर रहा है। मैं रेगेक्स को बदलने के लिए उपयोग कर सकता था], लेकिन शायद एक सरल तरीका है। क्या शोर्ट के पास भागने का चरित्र है?

जवाबों:


18

मुझे शॉर्टकोड के लिए एक आधिकारिक एस्केप सिंटैक्स का पता नहीं है और संभावना नहीं है कि कोई एक है।

जब वर्डप्रेस शॉर्टकोड के लिए पार्स करता है तो यह [ और ] के लिए दिखता है । यदि आप संबंधित का उपयोग करके, एक शोर्ट के भीतर वर्ग कोष्ठक का उपयोग करना चाहते हैं HTML ASCII संस्थाओं उनसे बच जाता है।

Ie की जगह [ द्वारा [और ] द्वारा ]। वर्डप्रेस नहीं पहचानेगा] शोर्ट के अंत के रूप में ।

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


जवाब देने के लिए धन्यवाद। अपने प्रश्न में, मैं 'भूल गया' एक कोड ब्लॉक में इसलिए यह ''] के रूप में सामने आया। मैंने अपना प्रश्न संपादित किया है। HTML इकाई WP के लिए काम करती है, लेकिन Google मानचित्र के लिए नहीं। HTML संस्थाओं को बदलने के लिए मुझे Regex का उपयोग करना होगा। मदद के लिए बहुत - बहुत धन्यवाद।
लक्ष्मीदि

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

1
@ जोहान्सपिल हेलो यह एक पुराना है, लेकिन मुझे [[93] द्वारा प्रतिस्थापित भी करना होगा; WP में पहली बार बचत और यह काम करता है, लेकिन पोस्ट / पृष्ठ को संपादित करते समय WP बदल जाता है & # 93; में]। (शोर्ट बटन पर नज़र रखने वाले एक Google ईवेंट के लिए इसकी आवश्यकता है)
एलेक्स

जैसा कि @alex ने कहा, यदि आप विज़ुअल टैब पर स्विच करते हैं और कोड टैब पर लौटते हैं, तो देखेंगे कि टिनीएमसीई विशेष वर्णों को वापस [] में बदल देता है, फिर कोड को तोड़ता है।
शाओल पदिला

टिनीएमसीई जावास्क्रिप्ट और प्लग करने योग्य है। Wpse / questions / 223677 / add-custom-text-pattern-in-the-wp-4-5-visual-editor पर एक नज़र डालें । @alex
जोहान्स

2

जोहान्स पिल के जवाब के आधार पर शोर्ट मापदंडों में पाठ का उपयोग करने के लिए वर्ग कोष्ठक से बचने के लिए wp फ़ंक्शन है:

function my_esc_brackets($text = ''){
    return str_replace( [ "[" , "]" ] , [ "[" , "]" ] , $text );
}

अक्सर लोग टेक्स्ट पैरामीटर के लिए शोर्ट की $ सामग्री का उपयोग करने का सुझाव देते हैं, लेकिन ऐसे मामले हैं जब शोर्टकोड में कई ऐसे टेक्स्ट पैरामीटर होते हैं।


2

यहां एक आधिकारिक पेज लगता है: एस्कॉर्टिंग शॉर्टकोड

अर्क:

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

[गेलरी]

आप इसे लिखेंगे:

[[गेलरी]]


0

यहां तक ​​कि अगर आप url के साथ नहीं खेल रहे हैं, तो % 5B और% 5D के साथ urldecode (अपने एट्रिब्यूट_वेल्यू) का उपयोग करें [और] के प्रतिस्थापन के रूप में उपयोग किए गए उपयोग करें।

आपका कोड इस तरह दिख सकता है:

अपने wp पेज में: [my_shortcode myattr="%5Bmyattribute_value%5D"]

फिर, अपने शोर्ट फ़ंक्शन में, बस यह करें:

 $origvalue=urldecode($atts['myattr']);

यह $ मूल में [और] वर्णों को पुनर्स्थापित करेगा, ताकि $ उत्पत्ति में अब शामिल हो: [myattribute_value]

TIP: यदि आप url के साथ खेल रहे हैं, तो वही करें, लेकिन फंक्शन कोड में निम्न जोड़ें:

$urlvalue = urlencode($origvalue);

अगर यह स्पष्ट नहीं है: हाँ, मैं एक url का सही हिस्सा बनाने के लिए urlencode (urld timecode ($ atts से कुछ मूल्य)) कर रहा हूँ।

काफी सरल, आशा है कि यह मदद करता है।

पियरे


-1

यह एक पुराना सवाल है, लेकिन यहाँ css का उपयोग करके वर्कअराउंड किया गया है। ब्रेसिज़ के स्थान पर, एक स्पैन में वर्ण संलग्न करें, जैसे:

<span class="bracket">some string</span>

फिर, इसे विषय स्टाइलशीट में जोड़ें:

span.bracket:before {
  content: '['
}
.colored-blocks span.bracket:after {
  content: ']'
}

परिणाम इस तरह दिखेगा:

[some string]


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