मैंने यहाँ कस्टम पोस्ट टाइप पर्मलिंक्स पर हर सवाल के माध्यम से खुदाई की है, लेकिन ज्यादातर या तो कस्टम टैक्सोनॉमी रीराइट्स के साथ समस्याएँ लगती हैं, या फ़्लश_ब्राइट_रुल्स () की स्पष्ट अनुपस्थिति। लेकिन मेरे मामले में, मैं केवल कस्टम पोस्ट प्रकार (कोई टैक्सोनॉमी) का उपयोग नहीं कर रहा हूं, पदानुक्रमित होने के लिए सेट किया गया है (इसलिए मैं अभिभावक-बच्चे के रिश्तों को असाइन कर सकता हूं), विशेषताओं मेटाबॉक्स आदि के लिए उचित "समर्थन" के साथ, आदि। एक अलग तरीके से फिर से लिखना नियम फ्लश हो गया है। मैंने विभिन्न पर्मलिंक संरचनाओं की कोशिश की है। लेकिन बाल URL का परिणाम हमेशा 404 होता है!
मेरे पास मूल रूप से "माता-पिता" और "बच्चे" तत्वों (पी 2 पी) का उपयोग करने के लिए स्वतंत्र कस्टम पोस्ट प्रकार थे, और मुझे शायद "माता-पिता" समूह के लिए एक वर्गीकरण का उपयोग करने में कोई परेशानी नहीं हुई होगी - मुझे पता है कि वे शब्दार्थ अधिक सटीक होंगे। लेकिन क्लाइंट के लिए, उनके लिए पदानुक्रम की कल्पना करना सबसे आसान है जब "पोस्ट" को व्यवस्थापक में प्रदर्शित किया जाता है जैसे पृष्ठ हैं: एक साधारण पेड़ जहां बच्चे माता-पिता के नीचे दिखाई देते हैं, "-" के साथ उपसर्ग करते हैं, और उचित ऑर्डर। इसके अलावा, ड्रैग-एन-ड्रॉप के माध्यम से ऑर्डर देने के विभिन्न तरीकों का उपयोग किया जा सकता है। टैक्सोनॉमी (या पी 2 पी) के माध्यम से समूहीकरण करने के लिए व्यवस्थापक सूची में "पदों" की एक फ्लैट सूची होती है, जो कि स्पष्ट रूप से स्पष्ट नहीं है।
तो जो मैं कर रहा हूं, वह वास्तव में कोर "पृष्ठों" के समान सटीक व्यवहार है, लेकिन मेरे कस्टम पोस्ट प्रकार के साथ। मैंने पोस्ट प्रकार को उम्मीद के अनुसार पंजीकृत किया है, और व्यवस्थापक में यह पूरी तरह से काम करता है - मैं प्रत्येक समाचार पत्र "पोस्ट" के लिए एक माता-पिता और एक मेनू_ऑर्डर असाइन कर सकता हूं, वे संपादन लिस्टिंग में सही ढंग से दिखाई देते हैं:
Spring 2012
— First Article
— Second Article
और उनके पर्मलिंक ठीक से बनाए गए प्रतीत होते हैं। वास्तव में, अगर मैं संरचना के बारे में कुछ भी बदलता हूं, या यहां तक कि पोस्ट प्रकार को पंजीकृत करते समय फिर से लिखने वाले स्लग को बदल देता हूं, तो वे स्वचालित रूप से सही ढंग से अपडेट होते हैं, इसलिए मुझे कुछ काम करना पता है:
http://mysite.com/parent-page/child-page/ /* works for pages! */
http://mysite.com/post-type/parent-post/child-post/ /* should work? */
http://mysite.com/newsletter/spring-2012/ /* works! */
http://mysite.com/newsletter/spring-2012/first-article/ /* 404 */
http://mysite.com/newsletter/spring-2012/second-article/ /* 404 */
मेरे पास पदानुक्रमित संबंधों के साथ मानक कोर "पृष्ठ" भी हैं, और वे केवल व्यवस्थापक में समान दिखते हैं, लेकिन वे वास्तव में फ्रंट-एंड पर भी काम करते हैं (माता-पिता और बच्चे दोनों यूआरएल ठीक काम करते हैं)।
मेरी पर्मलिंक संरचना के लिए सेट है:
http://mysite.com/%postname%/
मैंने भी इसका प्रयास किया है (सिर्फ इसलिए कि कई अन्य उत्तरों से लगता था कि यह इंगित करने की आवश्यकता है, हालांकि यह मेरे मामले में कोई मतलब नहीं था):
http://mysite.com/%category%/%postname%/
मेरे रजिस्टर सीपीटी आर्ग में शामिल हैं:
$args = array(
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'has_archive' => 'newsletter',
'hierarchical' => true,
'query_var' => true,
'supports' => array( 'title', 'editor', 'thumbnail', 'page-attributes' ),
'rewrite' => array( 'slug' => 'newsletter', 'with_front' => false ),
मेरे कस्टम पोस्ट टाइप बच्चों और सामान्य पृष्ठ के बच्चों के बीच एकमात्र अंतर यह है कि मेरे सीपीटी में पर्मलिंक संरचना की शुरुआत में स्लग है, फिर माता-पिता / बच्चे के स्लग के बाद (जहां पेज सिर्फ माता-पिता / बच्चे के स्लग से शुरू होते हैं,) कोई "उपसर्ग" नहीं)। यह क्यों बेईमानी करेगा, मुझे नहीं पता। बहुत सारे लेखों से संकेत मिलता है कि यह वास्तव में इस तरह के पदानुक्रमित सीपीटी पर्मलिंक का व्यवहार करना चाहिए - लेकिन मेरा, हालांकि अच्छी तरह से गठित, काम नहीं करते हैं।
जब मैं उस 404 पृष्ठ के लिए query_vars की जांच करता हूं, तो वह भी मुझे चकित कर देता है - वे मेरे बाल पृष्ठों को "खोजने" के लिए WP के सही मान सम्मिलित करते हैं, लेकिन कुछ काम नहीं कर रहा है।
$wp_query object WP_Query {46}
public query_vars -> array (58)
'page' => integer 0
'newsletter' => string(25) "spring-2012/first-article"
'post_type' => string(10) "newsletter"
'name' => string(13) "first-article"
'error' => string(0) ""
'm' => integer 0
'p' => integer 0
'post_parent' => string(0) ""
'subpost' => string(0) ""
'subpost_id' => string(0) ""
'attachment' => string(0) ""
'attachment_id' => integer 0
'static' => string(0) ""
'pagename' => string(13) "first-article"
'page_id' => integer 0
[...]
मैंने इसे विभिन्न विषयों के साथ आज़माया है, जिसमें ट्वेंटीवेट भी शामिल है, बस यह सुनिश्चित करने के लिए कि यह मेरी ओर से कुछ गायब टेम्पलेट नहीं है।
रीराइट नियम निरीक्षक का उपयोग करना, यह वही है जो यूआरएल के लिए दिखाता है: http://mysite.com/newsletter/spring-2012/first-article/
newsletter/(.+?)(/[0-9]+)?/?$
newsletter: spring-2012/first-article
page:
(.?.+?)(/[0-9]+)?/?$
pagename: newsletter/spring-2012/first-article
page:
एक अन्य निरीक्षक पृष्ठ पर इसका प्रदर्शन कैसे किया जाता है:
RULE:
newsletter/(.+?)(/[0-9]+)?/?$
REWRITE:
index.php?newsletter=$matches[1]&page=$matches[2]
SOURCE:
newsletter
यह फिर से लिखना उत्पादन मुझे विश्वास है कि निम्नलिखित "गैर सुंदर" permalink काम करेगा:
http://mysite.com/?newsletter=spring-2012&page=first-article
यह 404 नहीं है, लेकिन यह माता-पिता सीपीटी आइटम "न्यूज़लेटर" को दर्शाता है, बच्चे को नहीं। अनुरोध इस तरह दिखता है:
Array
(
[page] => first-article
[newsletter] => spring-2012
[post_type] => newsletter
[name] => spring-2012
)
post_name
कॉलम में कोई टक्कर नहीं ।