क्या अधिकतम स्लग लंबाई है?


14

एक मुवक्किल ने वास्तव में एक लंबे स्लग (90 वर्ण), कोई विशेष वर्ण (हाइफ़न के अलावा) आदि के साथ एक पोस्ट बनाया।

जब भी उस पोस्ट के लिंक पर क्लिक किया गया, जिसमें एडमिन बैक एंड से "पूर्वावलोकन" या "इस पोस्ट को देखें" लिंक शामिल हैं, तो एक 404 जेनरेट किया गया था।

एक बार जब हमने मैन्युअल रूप से स्लग को ट्रिम किया, तो सब कुछ उम्मीद के मुताबिक काम किया। क्या यह "सुविधा" या "बग" है?

EDIT: DB सीमा के बारे में बात करने वाले सभी लोगों के लिए एक नोट।

यदि मैं डीबी क्षेत्र की सीमा से टकरा रहा था, तो स्लग को ही काट दिया जाएगा। इसके बारे में एक सेकंड सोचें। अधिकांश WP स्थापनाओं के मामले में, wp_posts.post_name VARCHAR (200) है। तो, मान लीजिए कि कोई व्यक्ति शीर्षक में> 200 वर्णों के साथ टाइप करता है। क्या होता है? स्लग को 200 वर्णों तक काट दिया जाता है और wp_posts.post_name में संग्रहीत किया जाता है। ऐसा नहीं है कि कोई व्यक्ति ब्राउज़र एड्रेस बार में पोस्ट का पूरा शीर्षक टाइप कर रहा है, और रिक्त स्थान के साथ रिक्त स्थान का प्रतिस्थापन कर रहा है? URL WordPress द्वारा उत्पन्न किया जा रहा है, और यह wp_posts.post_name तालिका से URL प्राप्त कर रहा है और इसे लंगर टैग के href विशेषता में डाल रहा है। इसलिए वहां कोई असमानता नहीं है। पूरी डीबी चीज एक लाल हेरिंग है।

किसी भी मामले में, प्रश्न में स्लग केवल 90 वर्ण है, इसलिए इसका डीबी सीमा से कोई लेना-देना नहीं है।

क्या फिर से लिखने के आसपास कोई ज्ञात सीमाएं हैं?


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

जवाबों:


11

Wp_posts तालिका संरचना के कारण post_name कॉलम (स्लग के लिए स्तंभ) की लंबाई 200 वर्णों के बराबर है।


1
@TomAuger & Eugene - क्या आप इस मुद्दे की पुष्टि कर सकते हैं, क्योंकि टॉम का कहना है कि स्लग में 90 वर्ण थे। मुझे पता है कि सीमा 200 है, लेकिन यह होम URL को गिनता नहीं है, क्या यह है?
ब्रासोफिलो

@ यूजीन, बिल्कुल। 200 अक्षर। मेरा स्लग बिल्कुल 90 वर्ण का था, इसलिए हम डीबी की सीमा नहीं मार रहे हैं।
टॉम ऑगर

3

मुझे लगता है कि यह स्वयं द्वारा सीमा नहीं है, लेकिन स्लग के लिए डेटाबेस में फ़ील्ड की संपत्ति अधिकतम लंबाई पर सेट की जा सकती है।

तो डेटाबेस की जाँच करें!


@ जो नीचे है: जवाब सही है । इसलिए मैंने फिर से आवेदन किया।
केसर

0

संभवतः समस्या सीधे वर्डप्रेस / डेटाबेस से संबंधित नहीं थी ...

लेकिन URL की लंबाई 255 वर्णों से अधिक थी (और सभी वेब-ब्राउज़र ऐसा नहीं करते)।

यहां जो हुआ वह 255 वर्णों से अधिक लंबा एक URL हो सकता है, जो इसे खोलते समय ब्राउज़र के एड्रेस-बार से छोटा हो जाता है ... जिससे एक खराब पर्मलिंक की पुनर्प्राप्ति हो जाती है ... जिसके परिणामस्वरूप 4o4 था।

तो यह माना जा सकता है कि अधिकतम स्लग-लंबाई हो सकती है:

255 - की लंबाई (प्रोटोकॉल + FQDN + पर्मलिंक संरचना) ...

  • एक ब्राउज़र की हार्ड लिमिट के आधार पर।

लेकिन यह 200 वर्णों से अधिक लंबा नहीं हो सकता ...

  • post_name के फ़ील्ड आकार के आधार पर।

भले ही somethings और इस विशेष मामले में 4o4 का कारण हो सकता है।

यह एक ऐसा चरित्र हो सकता था जो ठीक से url_encoded नहीं था, 4o4 के कारण काफी अंतहीन हैं ... कभी भी HDD या खराब रैम मॉड्यूल पर खराब क्लस्टर माना जाता है? :)


GUID URL नहीं है। यह सिर्फ एक जैसा दिखने के लिए होता है, लेकिन अनुरोध पढ़ने के लिए उपयोग नहीं किया जाता है। यदि आप वर्डप्रेस को एक डोमेन से दूसरे में स्थानांतरित करते हैं तो GUID नहीं बदला जाएगा। Core.trac.wordpress.org/ticket/6492 और core.trac.wordpress.org/ticket/10857 देखें ।
FUXIA

फिर, पहचान उद्देश्यों के अलावा और किसके लिए एक विशिष्ट आईडी का उपयोग किया जाना चाहिए? मेरा मतलब है, मूल रूप से सवाल यह है: इस मामले में एक 4o4 का कारण क्या है?
मार्टिन जेइटलर

404 और GUID संबंधित नहीं हैं, मुझे लगता है। जब वह URL से मेल खाता पोस्ट खोजता है तो वर्डप्रेस केवल GUID का उपयोग नहीं करता है।
FUXIA

लगता है कि आप उस पर सही हैं ... पोस्ट_नाम और GUID को समस्या के स्रोत के रूप में बाहर रखा जा सकता है - जो कुछ बचा है, वह है Permalinks और re-write। अपाचे लॉगफाइल्स या कुछ भी बिना यह केवल अनुमान लगा रहा है;)
मार्टिन ज़ेटलर

@syslogic मुझे लगता है कि फिर से लिखना संभवत: कारण है और आगे की जांच। Http: // भाग सहित URL अभी भी 128 वर्णों के नीचे था, इसलिए मुझे नहीं लगता कि यह URL लंबाई पर एक कठिन ब्राउज़र सीमा मार रहा है।
टॉम ऑगर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.