เป็นไปได้ที่จะเปลี่ยน URL สำหรับประเภทโพสต์ปกติโดยไม่มีผลต่อ URL ของประเภทโพสต์ที่กำหนดเองอื่น ๆ ?


9

ภาวะที่กลืนไม่เข้าคายไม่ออก

ฉันมีโพสต์ที่กำหนดเองไม่กี่ประเภท:

  • รายการผลงาน
  • ใบรับรอง
  • คำถามที่พบบ่อย

โครงสร้าง URL สำหรับประเภทโพสต์ที่กำหนดเองเหล่านี้คือ:

  • mysite.com/ portfolio / name-of-custom-post
  • mysite.com/ ข้อความรับรอง / ชื่อของโพสต์ที่กำหนดเอง
  • mysite.com/ faq / ชื่อของโพสต์ที่กำหนดเอง

ฉันต้องการใช้ชนิดโพสต์ WordPress แบบติดตั้งภายในเพื่อควบคุมรายการบล็อกของเราและมี URL สำหรับแต่ละรายการในบล็อกเป็นดังนี้:

  • mysite.com/ บล็อก / ชื่อโพสต์

หากฉันไปที่การตั้งค่า> ลิงก์ถาวรและปรับโครงสร้าง URL ให้เป็น ...

/blog/%postname%/

... แล้ว URL สำหรับทุกประเภทโพสต์ของฉันได้รับผลกระทบซึ่งผลลัพธ์ใน:

  • mysite.com/ blog / portfolio / name-of-custom-post
  • mysite.com/ บล็อก / คำนิยม / ชื่อของโพสต์ที่กำหนดเอง
  • ฯลฯ ...

คำถาม

สิ่งที่ฉันต้องการทราบ - เป็นไปได้หรือไม่ที่จะปรับโครงสร้าง URL สำหรับชนิดโพสต์ WordPress ในตัวโดยไม่กระทบกับโครงสร้าง URL ของประเภทโพสต์ที่กำหนดเองอื่น ๆ

วิธีเดียวที่ฉันเห็นเพื่อแก้ไขปัญหาของฉันคือการสร้างประเภทโพสต์ที่กำหนดเองอื่นที่เรียกว่า "บล็อก" ดูเหมือนว่าสิ้นเปลืองเพราะฉันจะไม่ใช้ประเภทโพสต์ในตัวเลย

หากใครต้องการมันทำไม

หากใครสงสัยว่าทำไมฉันถึงต้องการ "บล็อก" ใน URL ที่ไม่ดีนั่นก็เพราะเรารวมบล็อกของเราไว้ในการติดตั้งเช่นเดียวกับเว็บไซต์ของเราและต้องการให้ URL เหมือนเดิมดังนั้นเราจึงไม่สูญเสียน้ำผลไม้ที่มีค่าของ Google

ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก - ขอบคุณ!


ฉันเพิ่งถามคำถามเดียวกันนี้เกือบคำต่อคำดีใจที่ฉันได้พบนี้ขอบคุณ
JasonDavis

คำตอบ:


14

คุณสามารถทำได้ในการลงทะเบียนประเภทโพสต์ที่กำหนดเอง

1) ตั้งค่าลิงก์เริ่มต้นใน WordPress admin เป็นโครงสร้างที่คุณต้องการเช่น:

/ บล็อก /% postname%

2) เพิ่มพารามิเตอร์ "slug" และ "with_front" ไปยัง rewrite-array ในฟังก์ชั่น register_post_type "กระสุน" ต้องเป็นชื่อโพสต์ประเภทของคุณ

  $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


คุณเป็นผู้ชายอย่างแน่นอน มันทำงานได้อย่างสมบูรณ์ ขอบคุณ!
Ryan

@rofflox โปรดดูคำถามนี้ ( wordpress.stackexchange.com/questions/52471/… ) ฉันลองคำตอบของคุณแล้ว แต่นั่นก็ไม่ได้ช่วยฉัน
ค่าเฉลี่ย Joe

0

ทางเลือก - คุณสามารถตั้งค่าการเปลี่ยนเส้นทางถาวร 301 วิธีนี้จะส่งผู้คนไปยังลิงก์ที่ถูกต้องและทำให้น้ำผลไม้ google ของคุณไม่เสียหาย ฉันไม่ทราบคำตอบสำหรับคำถามเฉพาะของคุณ


ขอบคุณ mrtsherman ฉันถามเจ้าหน้าที่ SEO ของเราเกี่ยวกับการทำเช่นนั้นและได้รับแจ้งว่าคุณสูญเสียน้ำผลไม้ Google ไปเล็กน้อยด้วยการเปลี่ยนเส้นทาง 301 ฉันชอบที่จะไม่สูญเสียใด ๆ แต่ถ้าทุกอย่างล้มเหลวฉันก็สามารถไปเส้นทางนี้
Ryan

@Ryan - +1 ตลก บริษัท ของฉันเพิ่งขอให้ทำสิ่งเดียวกันแน่นอนเมื่อบ่ายวานนี้ หวังว่าจะมีคนผ่าน
mrtsherman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.