7 Blogger

สวัสดีเราเอง 7 ไง (จำไม่ได้เหรอ !?!?!)

February 28, 2007

ความสัมพันธ์ระหว่าง Permalink กับ slug

Written by
7

ใน Wordpress จะมี function นึงในการเล่นกับ URL นั่นคือ Permanent link ที่อยู่ใน Options ตรงเมนู > Options\Permalinks

ในนั้นจะมี Option ให้เลือกอยู่ 4 จุดด้วยกัน ซึ่งก็จะแสดงผล URL แตกต่างกันไป

จาก 1-3 เราเห็นอยู่แล้วว่าจะแสดงผลยังไง ส่วนอันที่ 4 หล่ะ ทาง Wordpress ได้กำหนดตัวแปรไว้ให้เราจัดการการแสดงผล URL เอาไว้หลากหลายพอดู

  • %year% 
    แสดงปีแบบ 4 ตัวอักษร เช่น 2007 
  • %monthnum%
    แสดงเลขเดือนแบบ 2 ตัวอักษร เช่น 02
  • %day%
    แสดงวันที่ เช่น 28
  • %hour%
    แสดงชั่วโมง เช่น 15
  • %minute%
    แสดงนาที เช่น 43
  • %second%
    แสดงวินาที เช่น 33
  • %postname%
    แสดงชื่อของ Post <- ตรงนี้คือส่วนที่ต้องใช้ slug
  • %post_id%
    แสดงหมายเลข ID ของ Post เช่น 5
  • %category%
    แสดง Category <- ตรงนี้คือส่วนที่ต้องใช้ slug เหมือนกัน
  • %author%
    แสดงชื่อผู้เขียน Entry นั้น
  • อ้างอิง : http://codex.wordpress.org/Using_Permalinks

วิธีใช้ก็ไม่ยุ่งยาก เริ่มด้วย / แล้วต่อด้วยตัวแปรที่เราอยากให้แสดง คั่นด้วย / เป็นอันใช้ได้ นอกจากนี้เรายังสามารถแทรกตัวอักษรใดๆใว้ได้ด้วย ตัวอย่างเช่น

/%category%/%postname%.html

นี่เป็น Permalinks ที่ผมใช้กับเวปนี้ จะเห็นว่าใช้ตัวแปร 2 ตัว คือ %category% กับ %postname% ส่วน .html คือตัวอักษรส่วนเกินที่ผมใส่ลงไปเพื่อให้แสดงผล .html ต่อท้าย จะได้เหมือนกับว่าเป็นไฟล์ html ธรรมดา

ทีนี้มาว่าด้วยเรื่องของ slug กันต่อ slug นี้ จะใช้กับ ตัวแปร 2 ตัว คือ %category% กับ %postname% เพราะว่าเราอาจจะตั้งชื่อ category กับ postname เป็นภาษาไทย หรือว่ามีตัวอักษรที่ไม่สามารถแสดงผลได้ถูกต้อง(มีแล้วเข้าเวปไม่ได้นั่นแหละ) เราจะเห็น slug อยู่ 2 จุดด้วยกัน คือ

  1. Write Post , Write Page จะอยู่ด้านข้างขวา ที่มี Title ว่า Post slug นั่นแหละครับ
  2. Categories ในหน้า Manage ตรงนี้แก้ที่ Category slug

ตามปกติ Wordpress จะแก้ให้เราครับ โดยตัดตัวอักษรที่ใช้ไม่ได้ออกไป แต่ทีนี้บางทีเราอาจจะอยากตั้งเองเพื่อเหตุผลทาง SEO หรืออะไรก็แล้วแต่ Wordpress ก็เลยอนุญาติให้ตั้งเอง แต่ที่สำคัญคือเวปที่เป็นภาษาไทยอย่างเราๆนี่ ถ้า Title เป็นภาษาไทย Wordpress จะแปลงออกมาเละมาก เลยจำเป็นต้องแก้เองทุกครั้งครับ

ข้อสังเกตุอย่างหนึ่งที่ Wordpress บอกมาเกี่ยวกับการใช้ %category% กับ %postname% ก็คือ 

Wordpress ไม่แนะนำให้ใช้ %postname% เดี่ยวๆในการแสดงผลครับ เพราะอาจจะทำให้เข้าหน้านั้นไม่ได้ แนะนำให้ใช้ร่วมกับ ตัวแปรอื่นๆด้วย

ถ้าเรามี Category มากกว่า 1 ใน Post นั้น ทาง Wordpress จะแสดง Category ที่มีเลข ID น้อยที่สุดเสมอนะครับ

ที่สำคัญนะครับ เราจะใช้ Permalink ได้ก็ต่อเมื่อ Server ของเรา มี mod_rewrite และ .htaccess นะครับ ไม่งั้นอด ต้องไปใช้ Default อย่างเดียว จริงๆแล้ว Wordpress ก็แนะนำวิธีใช้ Permalink ในกรณีที่เราไม่มี 2 ตัวที่กล่าวมานั่นเหมือนกัน แต่ผมไม่เคยลอง เลยไม่กล้าพูดถึงความสำเร็จที่จะเกิดขึ้น ยังไงลองศึกษาเอาจาก link อ้างอิงข้างบนดูนะครับ

ข้อสังเกตุอีกอย่างนึงก็คือ ถึงแม้ว่าเราจะไม่ได้เลือก Default เป็น URL ก็ตาม แต่ทว่า URL นั้นจะยังสามารถเข้าได้ตามปกตินะครับ ลองกดดูเล่นๆ
http://www.7blogger.com/?p=5
http://www.7blogger.com/wordpress/permalink-and-slug.html

เรื่องที่เกี่ยวข้อง

  • บังคับการแสดง Entry ด้วย query_posts()
  • 7 comments for this post.

    1. Comment from ป่าน on March 24th, 2007 :

      ผมลองทำแล้วอ่ะคับ แต่มันทำให้เข้าหน้า category ไม่ได้ ผมไม่แน่ใจว่าผมทำผิดเป่า แต่เติมลงไปว่า /%category%/%postname%/ เนี่ยคับ อ่อแล้วก็อยากถามอีกอ่ะคับ ผมจะเอา youtube มาลงใน blog ผมยังไง อ่ะคับ ลองมา 3 plugin ละไม่รอดซักกะตัวเลย 55+

    2. Comment from 7 on March 25th, 2007 :

      เข้าไม่ได้ยังไงอ่ะครับ เท่าที่ดูก็ใส่ไม่ผิดนิครับ

    3. Pingback from 7 Blogger » บังคับการแสดง Entry ด้วย query_posts() on May 3rd, 2007 :

      […] ความสัมพันธ์ระหว่าง Permalink กับ slug […]

    4. Comment from tor on May 23rd, 2007 :

      แวะมาเยี่ยมครับ กะลังจะเริ่มทำ wordpress

      ขอบคุณในข้อมูลครับ save เก็บเรียบร้อย อย่าพึ่งน้อยใจหละ ฮ่า

      ผม tor จากบอร์ด เสียว ครับ

    5. Comment from th_____7 on May 23rd, 2007 :

      สุดยอดเทพแห่ง Wordpress

    6. Comment from attapon on April 17th, 2008 :

      ผมยังติดปัญหาเรื่องภาษาไทยอ่าครับ แก้ตรงไหนอ่าครับ

      http://attapon.ptkclub.com/wordpress/%e0%b8%81%e0%b8%b2%e0%b8%a3%e0%b8%ad%e0%b8%b1%e0%b8%9e%e0%b9%80%e0%b8%94%e0%b8%97-wordpress.html

    7. Comment from Teague on September 28th, 2008 :

      พอดีผมค้นหาคำว่า Permalink เพราะไม่รู้จักเลยมาโผล่ที่นี่

      แล้วเห็นมีทำ url ภาษาไทย อยากบอกว่า
      ผมใช้ฟังก์ชั่น rawurlencode ให้ตัวแปลที่เก็บค่า url
      แล้วใช้ rawurldecode แปลงกลับในหน้าแสดงผลครับ

      แต่เว็บที่ผมทำ ผมเขียนเอง ไม่ได้ใช้โปรแกรมสำเร็จรูป

    Leave a Comment