अन्य कस्टम पोस्ट प्रकारों के URL को प्रभावित किए बिना नियमित पोस्ट प्रकार के लिए URL बदलना संभव है?


9

दुविधा

मेरे पास कुछ कस्टम पोस्ट प्रकार हैं:

  • पोर्टफोलियो आइटम
  • प्रशंसापत्र
  • पूछे जाने वाले प्रश्न

इन कस्टम पोस्ट प्रकारों के लिए URL संरचनाएँ हैं:

  • mysite.com/ पोर्टफोलियो / नाम-की-कस्टम-पोस्ट
  • mysite.com/ प्रशंसापत्र / नाम-की-कस्टम-पोस्ट
  • mysite.com/ faq / name-of-custom-post

हम अपने ब्लॉग प्रविष्टियों को नियंत्रित करने के लिए सामान्य, अंतर्निहित वर्डप्रेस पोस्ट प्रकार का उपयोग करना चाहते हैं, और प्रत्येक ब्लॉग प्रविष्टि के लिए URL इस तरह होना चाहिए:

  • mysite.com/ ब्लॉग / नाम-की-पोस्ट

अगर मैं सेटिंग> पेरलिंक्स पर जाता हूं और URL संरचना को समायोजित करने के लिए पसंद करता हूं ...

/blog/%postname%/

... तो मेरे सभी पोस्ट प्रकारों के URL प्रभावित होते हैं, जिसके परिणामस्वरूप:

  • mysite.com/ ब्लॉग / पोर्टफोलियो / नाम-की-कस्टम-पोस्ट
  • mysite.com/ ब्लॉग / प्रशंसापत्र / नाम-की-कस्टम-पोस्ट
  • आदि...

प्रश्न

जो मैं जानना चाहता हूं - क्या अन्य कस्टम पोस्ट प्रकारों के URL संरचना को प्रभावित किए बिना अंतर्निहित वर्डप्रेस पोस्ट प्रकार के लिए URL संरचना को समायोजित करना संभव है?

मेरी दुविधा को हल करने का एकमात्र तरीका मैं एक और कस्टम पोस्ट प्रकार बनाना चाहता हूं जिसे "ब्लॉग" कहा जाता है। यह बेकार लगता है, क्योंकि तब मैं बिल्ट-इन वर्डप्रेस पोस्ट प्रकार का उपयोग नहीं करूंगा।

अगर किसी को इसकी आवश्यकता है, तो क्यों

अगर किसी को आश्चर्य है कि मुझे URL में "ब्लॉग" की इतनी बुरी तरह से आवश्यकता क्यों है, तो ऐसा इसलिए है क्योंकि हम अपने ब्लॉग को हमारी साइट के समान इंस्टॉल में मर्ज कर रहे हैं, और URL को अक्षुण्ण रखना चाहते हैं ताकि हम मूल्यवान Google रस न खोएं।

किसी भी मदद की बहुत सराहना की है - धन्यवाद!


मैंने बस यही सवाल लगभग शब्द के लिए पूछा था, खुशी से मुझे यह मिला, धन्यवाद
जेसनडेविस

जवाबों:


14

आप कस्टम पोस्ट प्रकार पंजीकरण पर ऐसा कर सकते हैं।

1) वर्डप्रेस एडमिन में अपनी डिफ़ॉल्ट संरचना को अपनी इच्छित संरचना में सेट करें जैसे:

/ ब्लॉग /% postname%

2) register_post_type फ़ंक्शन में रीराइट-सरणी में "स्लग" और "with_front" पैरामीटर जोड़ें। "स्लग" आपके पोस्ट-प्रकार का नाम होना चाहिए।

  $args = array(
    // ...
    'rewrite' => array(
        'slug' => 'your_post_type',
        'with_front' => false
    ),
    // ...
  ); 
  register_post_type('your_post_type',$args);

यह निम्नलिखित पुनर्लेखन नियमों को उत्पन्न करना चाहिए:

डिफ़ॉल्ट पोस्ट: http://example.com/blog/%postname%
डिफ़ॉल्ट पृष्ठ: http://example.com/%postname%
कस्टम पोस्ट प्रकार: http://example.com/your_post_type/%postname%

संपादित करें

"स्लग" पैरामीटर वैकल्पिक है। यदि आप इसे सेट नहीं करते हैं, तो आपके कस्टम पोस्ट प्रकार का नाम उपयोग किया जाता है। Register_post_type के बारे में फ़ंक्शन संदर्भ देखें: http://codex.wordpress.org/Function_Reference/register_post_type


आप बिलकुल मर्द हैं। यह पूरी तरह से काम करता है; धन्यवाद!
रयान

@rofflox। कृपया इस ( wordpress.stackexchange.com/questions/52471/… ) प्रश्न पर एक नज़र डालें । मैंने आपके उत्तर की कोशिश की लेकिन इससे मुझे कोई फायदा नहीं हुआ।
औसत जो

0

वैकल्पिक - आप स्थायी 301 रीडायरेक्ट सेटअप कर सकते हैं। यह लोगों को सही लिंक पर भेजेगा और आपके गूगल जूस को बरकरार रखेगा। मैं हालांकि आपके विशिष्ट प्रश्न का उत्तर नहीं जानता।


धन्यवाद श्रीशर्मन। मैंने हमारे एसईओ व्यक्ति से ऐसा करने के बारे में पूछा, और मुझे बताया गया है कि आप 301 रीडायरेक्ट करके Google का थोड़ा सा रस खो देते हैं। मैं कोई भी हारना पसंद नहीं करूंगा, लेकिन अगर बाकी सब विफल हो जाता है तो मैं इस मार्ग पर जा सकता हूं।
रयान

@Ryan - +1 मज़ेदार मेरी कंपनी ने ठीक यही काम करने के लिए कहा जो इस यस्टरडा दोपहर का है। उम्मीद है कि किसी के माध्यम से आता है।
म्रतशर्मन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.