EN SeedWebs

หน้าเพจและบทความ

วิธีสร้าง แก้ไข และเผยแพร่ Pages กับ Posts ใน SeedWebs รวมสถานะ Draft/Published/Trash, slug, โหมดเนื้อหา, หมวดหมู่ และ URL ที่ได้จริง

ปรับปรุงล่าสุด 2026-10-09

เนื้อหาหลักของเว็บใน SeedWebs มีสองชนิดที่ทุกแพ็กเกจได้ใช้ตั้งแต่วันแรกคือ Pages (หน้า) และ Posts (บทความ) หน้านี้อธิบายวิธีสร้าง แก้ไข เผยแพร่ และสิ่งที่เกิดขึ้นกับ URL บนเว็บสาธารณะเมื่อคุณกดบันทึก

Pages กับ Posts ต่างกันที่ไหน

Pages (หน้า)Posts (บทความ)
เมนูในแอดมินPages → /admin/pagesPosts → /admin/posts
URL สาธารณะ/{slug} เช่น /about-us/posts/{slug} หรือรูปแบบที่ตั้งไว้ที่ ตั้งค่า → ทั่วไป → URL
โครงสร้างแม่–ลูกมี (Parent Page + Page Order)ไม่มี
หมวดหมู่ / แท็กไม่มีมี (Categories + Tags)
ผู้เขียน (Author)ไม่มีช่องเลือกต้องเลือก 1 คน (บังคับ) และมีผู้เขียนร่วมได้
เทมเพลต (Template)เลือกได้ต่อหน้าเลือกไม่ได้ ใช้เทมเพลตบทความของธีมทุกชิ้น
โหมดเนื้อหาที่สองHTML BuilderMarkdown (ต้องเปิดในตั้งค่าก่อน)

ทั้งสองชนิดอยู่ในทุกแพ็กเกจ (Seed, Pro, Business รวมถึงช่วงทดลองใช้) และไม่ต้องเปิดแฟล็กพิเศษใด ๆ

หมายเหตุ: ถ้าปิดสวิตช์ Pages หรือ Posts ใน Settings → General → ฟีเจอร์ (/admin/settings/general) เมนูจะหายจากแอดมิน และ หน้าเว็บสาธารณะของชนิดนั้นจะกลายเป็น 404 ด้วย ปิดเฉพาะเมื่อคุณต้องการซ่อนทั้งระบบจริง ๆ

สร้างหน้าใหม่

  1. ไปที่ Pages → Add Page (/admin/pages/new) หรือ Posts → Add Post (/admin/posts/new)
  2. พิมพ์ชื่อเรื่องในช่องบนสุด ระบบสร้าง slug ให้อัตโนมัติจากชื่อเรื่อง (อ่านข้อจำกัดของชื่อภาษาไทยด้านล่าง)
  3. เขียนเนื้อหาในตัวแก้ไขด้านซ้าย
  4. ถ้าเป็นบทความ ให้เลือก Author ในกล่อง Publish ก่อน (บันทึกไม่ผ่านถ้าไม่มีผู้เขียนหลัก)
  5. เลือกสถานะ Draft หรือ Published แล้วกดปุ่มบันทึก ฟอร์มใหม่ตั้งต้นไว้ที่ Published ถ้ายังไม่พร้อมให้คนเห็น ต้องกดสลับเป็น Draft เอง

ปุ่มบันทึกจะขึ้นข้อความต่างกันตามสถานะ ได้แก่ Publish (สร้างใหม่ + Published), Save Draft (สร้างใหม่ + Draft) และ Update (แก้ของเดิม) หลังบันทึกสำเร็จปุ่มจะแสดง “Saved ✓” และกดซ้ำไม่ได้ประมาณ 3 วินาที เพื่อกันการกดรัวจนคำสั่งซ้อนกัน

ถ้าคุณแก้ไขแล้วยังไม่บันทึกแล้วกดลิงก์ออกจากหน้า จะมีกล่องยืนยันเตือนก่อนว่างานที่แก้จะหาย

กล่อง Publish

กล่องที่มีกรอบหนาด้านขวาบนคือกล่อง Publish ซึ่งแยกจากการ์ด accordion ที่อยู่ใต้ลงไป ในกล่องนี้มี

  • สถานะ Draft / Published (สลับด้วยปุ่มคู่ด้านซ้าย)
  • ไอคอนถังขยะ ย้ายรายการไป Trash (เห็นเฉพาะตอนแก้ของที่บันทึกแล้ว)
  • Slug และป้ายภาษา (ป้ายภาษาโผล่เมื่อเว็บเปิดหลายภาษา)
  • ช่อง Category และ Author (บทความเท่านั้น)
  • ปุ่มบันทึก

สถานะมีสามค่า

สถานะความหมาย
draftยังไม่เผยแพร่ เปิด URL สาธารณะจะไม่เจอ
publishedเผยแพร่แล้ว เห็นบนเว็บสาธารณะ
trashอยู่ในถังขยะ ยังกู้คืนได้

ปุ่มสลับสถานะในฟอร์มมีแค่ Draft กับ Published การย้ายไปถังขยะทำได้สองทาง คือไอคอนถังขยะในกล่อง Publish (ทำได้ทีละชิ้น) หรือติ๊กเลือกหลายรายการในหน้ารายการแล้วสั่งย้าย (เฉพาะ super_admin กับ admin) ในตารางไม่มีปุ่มถังขยะรายแถว

ไม่มีระบบตั้งเวลาเผยแพร่ (schedule) ใน SeedWebs สถานะมีแค่สามค่าข้างต้น การตั้งวันที่ในอนาคตที่ช่อง “Created” ไม่ได้ทำให้หน้าเผยแพร่เองตามเวลา หน้าที่เป็น Published จะเห็นทันที และหน้าที่เป็น Draft จะไม่เห็นเลย

Slug และกฎที่ต้องรู้

Slug คือส่วนท้ายของ URL ตอนสร้างใหม่ ระบบจะสร้าง slug จากชื่อเรื่องให้อัตโนมัติ ตอนแก้ของเดิม ให้คลิกที่ slug เพื่อพิมพ์ทับ

  • Slug เหลือแค่ a-z, 0-9 และ - อักขระอื่นถูกตัดออก ตัวพิมพ์ใหญ่กลายเป็นพิมพ์เล็ก ช่องว่างและขีดล่างกลายเป็น -
  • Slug ต้องเป็นภาษาอังกฤษเท่านั้น ถ้าพิมพ์ slug เป็นภาษาไทย (หรือภาษาอื่นที่ไม่ใช่อังกฤษ) ระบบจะไม่ยอมบันทึกและขึ้นข้อความให้เปลี่ยนเป็นภาษาอังกฤษ ส่วน slug ภาษาไทยที่บันทึกไว้แล้วยังใช้งานได้เหมือนเดิมทุกประการ ระบบไม่แก้ให้เองย้อนหลัง
  • ข้อยกเว้น: เว็บที่ย้ายมาจาก WordPress และใช้ URL ภาษาไทย เปิดให้ใช้ slug ภาษาอื่นนอกจากอังกฤษได้ ดู เว็บที่ย้ายมาจาก WordPress ด้านล่าง
  • ชื่อเรื่องภาษาไทยล้วนจะเหลือ slug ว่าง ระบบจึงสุ่มรหัส 10 ตัวอักษรให้แทน เช่นได้ URL หน้าตา /k3d9f0a1b2 ถ้าอยากได้ URL ที่อ่านรู้เรื่อง ให้พิมพ์ slug เป็นภาษาอังกฤษเองทุกครั้ง
  • ชื่อเรื่องผสมไทย-อังกฤษจะเหลือแต่ส่วนอังกฤษ เช่น “บทความ Hello World” ได้ hello-world
  • Slug ต้องไม่ซ้ำ ภายในภาษาเดียวกัน ถ้าซ้ำ ระบบจะต่อท้ายด้วยรหัสสุ่มให้เอง ไม่ปฏิเสธการบันทึก คนละภาษาใช้ slug เดียวกันได้
  • สำหรับ Pages กฎ “ไม่ซ้ำ” นี้เช็คแค่ในกลุ่มพี่น้องเดียวกัน ไม่ใช่ทั้งเว็บ หน้าลูกจะ slug ซ้ำกับหน้าลูกของพ่ออื่นได้ เช่น /face/laser กับ /body/laser ใช้ slug “laser” เหมือนกันได้ เพราะอยู่คนละพ่อ แต่หน้าลูกสองหน้าที่อยู่ใต้พ่อเดียวกัน (หรือหน้าระดับบนสุดสองหน้า) ยังห้ามซ้ำเหมือนเดิม — ถ้าซ้ำจะถูกต่อรหัสสุ่มให้แบบเดียวกับข้อบนนี้ ส่วนบทความไม่มีพ่อ จึงเช็คไม่ซ้ำกันทั้งเว็บตามที่บอกไว้ข้างบน
  • ตอนย้ายไปถังขยะ ระบบเปลี่ยน slug เป็น {slug}-trashed-{ตัวเลข} เพื่อคืน slug เดิมให้ใช้ใหม่ได้ทันที

แถบด้านข้าง (การ์ด accordion)

ใต้กล่อง Publish คือการ์ดเดียวที่มีหลายหัวข้อพับ-กาง เปิดหัวข้อหนึ่งแล้วหัวข้ออื่นจะปิดเอง

คลิกกรอบเส้นประเพื่อเปิดตัวเลือกรูปจาก Library, Upload หรือ Unsplash รูปนี้คือรูปที่ธีมใช้แสดงในการ์ด/หน้ารายการ และเป็นรูปที่ไปเป็น og:image กับ twitter:image เวลาแชร์ลิงก์ ดูรายละเอียดคลังไฟล์ที่ สื่อและรูปภาพ

Options

สำหรับ Pages มี

ช่องทำอะไร
Templateเลือกเทมเพลตของหน้า รายการดึงมาจากทั้ง Pages → Templates (/admin/pages/templates) และเทมเพลตชื่อ page-* ในธีม
Parent Pageตั้งหน้าแม่ ทำให้ URL กลายเป็น /{หน้าแม่}/{หน้านี้}
Page Orderตัวเลขลำดับ ใช้เรียงในรายการและในโครงสร้าง
Show galleryเปิดใช้แกลเลอรีของหน้านี้ เมื่อเปิดจะมีกล่องเลือกรูปโผล่ใต้ตัวแก้ไข และมีปุ่มแทรกแกลเลอรีในแถบเครื่องมือ ถ้าแทรกแท็ก {{gallery}} ไว้ในเนื้อหา รูปจะขึ้นตรงจุดนั้น ถ้าไม่ได้แทรกไว้เลย ระบบจะต่อแกลเลอรีท้ายเนื้อหาให้เอง

เทมเพลตชื่อ landing เป็นกรณีพิเศษ คือ ตัด header และ footer ของธีมออกทั้งหมด เหมาะกับหน้าโปรโมชันหน้าเดียว

หมายเหตุสำคัญ: เมื่อเปิดโหมด HTML Builder แล้วเลือก Template ที่ไม่ใช่ Default ระบบจะเตือนเป็นตัวอักษรสีเหลืองว่าเทมเพลตจะไม่ถูกใช้ เพราะโหมด HTML Builder แสดง HTML ของคุณตรง ๆ

สำหรับ Posts ในหัวข้อ Options มีแค่สวิตช์ Show gallery

Tags และ Co-authors (บทความเท่านั้น)

  • Tags พิมพ์ชื่อแท็กแล้วกด Add หรือ Enter ถ้ามีแท็กชื่อ/slug เดียวกันอยู่แล้ว ระบบจะหยิบตัวเดิมมาใช้ ไม่สร้างซ้ำ แท็กที่มีอยู่แสดงเป็นปุ่ม + ชื่อแท็ก ให้กดเพิ่มได้
  • Co-authors เลือกผู้เขียนร่วมได้หลายคน เรียงตามลำดับที่เพิ่ม หัวข้อนี้จะไม่แสดงสำหรับบทบาท writer

SEO

มี SEO Title (จำกัด 60 ตัวอักษร), SEO Description (จำกัด 160 ตัวอักษร) และ Keywords พร้อมแผงตรวจ SEO สดที่ประเมินจากค่าที่กรอกอยู่ ถ้าเว้นว่าง เว็บสาธารณะจะใช้ชื่อเรื่องเป็น title ให้

ยกเว้นหน้าแรก — ถ้าเว้น SEO Title ไว้ หน้าแรกจะใช้ ชื่อเว็บ - สโลแกน แทนชื่อเพจ เพราะคนที่ค้นหาจนมาถึงหน้าแรกค้นด้วยชื่อแบรนด์ ชื่อแบรนด์จึงควรอยู่หน้าสุด (หน้าอื่นยังเป็น ชื่อเรื่อง — ชื่อเว็บ ตามเดิม) ถ้ากรอก SEO Title เองก็จะใช้ค่านั้นตามปกติ

เว็บที่ย้ายมาจาก WordPress ที่ใช้ Yoast SEO เปิด ใช้แท็ก SEO แบบเว็บ WordPress เดิม ได้ที่หน้า SEO (แสดงเฉพาะเว็บที่ทีมงานเปิดฟีเจอร์สำหรับการย้ายเว็บไว้) แล้ว title จะเป็นแบบ Yoast แทน: ชื่อเรื่อง - ชื่อเว็บ (ขีดสั้นธรรมดา) ทุกหน้ารวมหน้าแรก ชื่อหมวด Archives - ชื่อเว็บ สำหรับหมวดหมู่และแท็ก และ SEO Title ที่กรอกไว้จะแสดงตามที่พิมพ์ทุกตัวอักษรโดยไม่ต่อชื่อเว็บ ส่วน meta description จะใช้ SEO Description เท่านั้น ไม่ดึงจากเนื้อหามาเติมให้

Custom Fields

ช่องกรอกเพิ่มเติมที่คุณกำหนดเองจะโผล่ที่นี่ (และบางส่วนใต้ตัวแก้ไข) โดยที่มาต่างกันตามชนิดเนื้อหา

  • Pages: มาจากเทมเพลตที่เลือกใน Pages → Templates
  • Posts: มาจาก หมวดหมู่ ที่เลือก (/admin/posts/categories)

เปลี่ยนเทมเพลตหรือหมวดหมู่แล้วช่องจะเปลี่ยนตาม ค่าที่กรอกไว้เดิมไม่ถูกลบทิ้ง

วันที่ Created / Updated

ใต้การ์ด accordion มีวันสร้างและวันแก้ไขล่าสุด คลิกเพื่อแก้เป็นวัน-เวลาอื่นได้ (มีผลกับการเรียงลำดับและวันที่ที่ธีมแสดง)

โหมดเนื้อหา

Article (ค่าเริ่มต้น ใช้กับทั้ง Pages และ Posts)

ตัวแก้ไขข้อความแบบเห็นผลทันที มีตัวหนา ตัวเอียง ขีดเส้นใต้ หัวข้อ H2/H3/H4 รายการหัวข้อย่อยและตัวเลข จัดชิดซ้าย/กลาง/ขวา แทรกรูป แทรกแกลเลอรี (เมื่อเปิด Show gallery) ใส่ลิงก์ และปุ่มดู HTML ต้นฉบับที่มุมขวาของแถบเครื่องมือ

วางที่อยู่ของวิดีโอ YouTube โพสต์ Instagram, Facebook หรือ TikTok หรือโปรไฟล์ TikTok ไว้ในบรรทัดว่างโดยไม่มีอย่างอื่น ที่อยู่นั้นจะกลายเป็นวิดีโอหรือโพสต์นั้นเลย (เป็นแท็กฝัง แบบเดียวกับที่ปุ่ม YouTube บนแถบเครื่องมือเขียนให้) โค้ดที่ Google Maps ให้มาจาก แชร์ → ฝังแผนที่ ก็เช่นกัน จะกลายเป็นแผนที่ ถ้าอยากได้เป็นลิงก์ธรรมดา ให้กด Ctrl+Z (⌘Z บน Mac) หนึ่งครั้ง ที่อยู่ที่วางกลางประโยคจะยังเป็นลิงก์ รายละเอียดดูที่ Template Tags

HTML Builder (Pages เท่านั้น)

สวิตช์ HTML Builder อยู่ข้างหัวข้อหน้าจอด้านบน เมื่อเปิดแล้วเนื้อหาจะถูกหั่นเป็นการ์ด section ตามโครงสร้าง HTML ระดับบนสุด แต่ละการ์ดมีสามแท็บ

แท็บใช้ทำอะไร
Contentแก้ข้อความและเปลี่ยนรูปในบล็อกนั้น โดยไม่ต้องแตะโค้ด
Styleแก้คลาส Tailwind ของแต่ละองค์ประกอบ
HTMLแก้ HTML ตรง ๆ พร้อมปุ่มจัดรูปแบบโค้ด

การ์ดลากสลับลำดับได้ ทำสำเนาได้ ลบได้ และมีปุ่ม เพิ่มบล็อก (Add Block) สำหรับหยิบบล็อกสำเร็จรูป (Hero, Features, Stats, Logos, Testimonials, Pricing, FAQ, Team, Blog, Social, Contact, CTA) กับปุ่ม นำเข้า HTML (Import HTML) สำหรับวาง HTML ทั้งหน้าเข้ามา บล็อกสำเร็จรูปหมวด Social ใช้แสดงโพสต์ Instagram, TikTok หรือ Facebook ที่คุณเลือก โปรไฟล์ TikTok หรือวิดีโอ YouTube หนึ่งคลิป ดู เชื่อมโซเชียลมีเดีย ส่วนหมวด Contact มีบล็อก Google Map ให้วางที่อยู่จาก แชร์ → ฝังแผนที่ ของ Google Maps ไว้ระหว่างเครื่องหมายคำพูดของ url="" (ดู Template Tags)

การหั่นการ์ดจะเกิดเมื่อ HTML มีลูกระดับบนสุดที่เป็นบล็อกตั้งแต่ 2 ชิ้นขึ้นไป โครงสร้างซ้อนกัน เช่น grid ที่มีหลายคอลัมน์ จะอยู่รวมเป็นการ์ดเดียว

Markdown (Posts เท่านั้น และต้องเปิดก่อน)

สวิตช์ Markdown จะโผล่ข้างหัวข้อหน้าจอเมื่อเปิด เปิดใช้งาน Markdown บนโพสต์ ใน Settings → General → ขั้นสูง (/admin/settings/general ต้องเป็น super_admin หรือ admin) ตอนบันทึก ระบบจะแปลง Markdown เป็น HTML เก็บลงเนื้อหาบทความ และเก็บต้นฉบับ Markdown ไว้ให้กลับมาแก้ต่อได้

ถ้าบทความไหนเคยบันทึกเป็นโหมด Markdown ไว้ สวิตช์จะยังแสดงอยู่แม้ตั้งค่าถูกปิดภายหลัง เพื่อไม่ให้แก้บทความนั้นไม่ได้

การสลับโหมดจะล้างเนื้อหา

สลับโหมดเมื่อมีเนื้อหาอยู่แล้ว จะมีกล่องยืนยันขึ้นชื่อ Switch & Clear ระบบล้างเนื้อหาในโหมดเดิมทิ้งเสมอ ไม่มีการแปลงข้ามโหมดให้ ถ้าต้องการเก็บของเดิม ให้คัดลอกเนื้อหาออกไปก่อน

โหมดที่บันทึกไว้มีผลต่อการแสดงบนเว็บอย่างไร

ระบบจดโหมดที่ใช้ล่าสุดไว้กับหน้านั้น (ค่าภายในชื่อ _content_mode) และเว็บสาธารณะอ่านค่านี้เพื่อตัดสินใจว่าจะแสดงแบบไหน

  • Pages โหมด HTML Builder จะถูกแสดงเป็น HTML ของคุณตรง ๆ ไม่ผ่านเทมเพลตหน้าของธีม (ระบบยังครอบ <main> ให้ ยกเว้น HTML ของคุณมี <main> เองหรือใช้เทมเพลต landing)
  • Pages โหมด Article จะถูกส่งเข้าเทมเพลตของธีมตามลำดับ page-{ชื่อเทมเพลต} แล้วถอยไป page
  • Posts แสดงผ่านเทมเพลต post-detail-page แล้วถอยไป post-detail เสมอ ไม่ว่าจะเขียนมาด้วย Article หรือ Markdown

หน้าที่สร้างไว้นานแล้วและไม่มีค่าโหมดบันทึกอยู่ ตอนเปิดในตัวแก้ไข ระบบจะเดาจากตัวเนื้อหา คือถ้าเริ่มด้วย <section>, <div> หรือ <main> จะเปิดเป็นโหมด HTML Builder

template tag ส่วนใหญ่ในตัวเนื้อหาใช้ได้กับ Pages เท่านั้น เนื้อหาของหน้าเพจถูกส่งผ่านตัวแปลแท็กก่อนแสดง จึงใส่ {{site_name}}, {{#each posts}}, {{slider}}, {{form}} ไว้กลางเนื้อหาได้ ส่วนเนื้อหาบทความถูกวางลงเทมเพลตตรง ๆ แท็กที่ทำงานให้มีแค่ {{gallery}}, {{social_share}}, {{locale_prefix}}, {{pdf_button}} และแท็กวิดีโอ โพสต์โซเชียล และแผนที่ ({{youtube}}, {{instagram}}, {{facebook}}, {{tiktok}}, {{tiktok_profile}}, {{map}}) แท็กอื่นจะโผล่เป็นตัวอักษร {{...}} บนหน้าเว็บ ถ้าต้องการแท็กพวกนั้นในบทความ ให้ใส่ไว้ในเทมเพลตของธีมแทน ส่วนหน้าแรกที่เขียนด้วยโหมด Article ใช้ได้แค่แท็กวิดีโอ โพสต์โซเชียล แผนที่ และ {{pdf_button}} อ่านรายการแท็กได้ที่ Template Tags

หมวดหมู่และแท็กของบทความ

  • บทความหนึ่งชิ้นอยู่ได้ หนึ่งหมวดหมู่ (ช่อง Category เป็นแบบเลือกเดี่ยว) แต่ใส่แท็กได้หลายอัน
  • ถ้าเว็บมีหมวดหมู่เดียว ช่อง Category จะไม่แสดง และบทความเข้าหมวดหมู่นั้นให้เอง เว็บใหม่จะมีหมวดหมู่ตั้งต้นชื่อ News
  • จัดการหมวดหมู่ที่ Posts → Categories (/admin/posts/categories) และแท็กที่ Posts → Tags (/admin/posts/tags) หมวดหมู่รองรับหมวดแม่-หมวดย่อย
  • หน้าสาธารณะของหมวดหมู่คือ /category/{slug} และของแท็กคือ /tag/{slug}
  • ที่อยู่หมวดหมู่แบบซ้อนเหมือน WordPress ที่ Settings ▸ General ▸ URL ▸ หมวดหมู่บทความ เลือกให้มีหมวดหลักอยู่ในที่อยู่ได้ เช่น /category/business/marketing แทน /category/marketing ที่อยู่หมวดหมู่แบบอื่น ๆ ทั้งแบบสั้น แบบที่หมวดหลักเก่า หรือตัวพิมพ์ใหญ่เล็กต่างกัน จะ redirect ไปที่อยู่เต็มให้อัตโนมัติ ลิงก์เดิมจึงยังใช้ได้ ถ้าเว็บมีหลายภาษา แต่ละหมวดตั้ง slug แยกตามภาษาได้ด้วย (Posts → Categories → แก้ไข → Slug per language) แบบเดียวกับที่ WordPress ใช้ WPML ทำ /en/category/business-en ระหว่างเปิดใช้ หมวดย่อยตั้ง slug เป็น fragment, page หรือ feed ไม่ได้ เพราะคำเหล่านี้สงวนไว้ท้ายที่อยู่หมวดหมู่ ที่อยู่หน้าแบบ WordPress (/category/business/page/2) จะ redirect ไปหน้าเดียวกันของหมวดนั้น หรือถ้าเปิด “แบ่งหน้าด้วย /page/2” ไว้ ก็จะเป็นหน้านั้นเลย ถ้าเปลี่ยนกลับเป็นค่าเริ่มต้น จะใช้ได้แค่ที่อยู่แบบสั้นตามเดิม ส่วน slug แยกตามภาษายังเก็บไว้แต่ไม่ถูกใช้ และยังเห็นในหน้าแก้ไขหมวดหมู่เพื่อให้ลบออกได้ ถ้า slug ภาษาใดไปซ้ำกับ slug ของหมวดอื่นในภาษาเดียวกัน จะเปิดแบบซ้อนกลับมาไม่ได้จนกว่าจะแก้ให้ไม่ซ้ำ

หน้าแม่–หน้าลูก และการเรียงลำดับ

ตั้ง Parent Page ในหัวข้อ Options แล้ว URL จะซ้อนตามชั้น เช่นหน้า team ที่มีแม่เป็น about จะอยู่ที่ /about/team ซ้อนได้หลายชั้น

หน้า Pages → Structure (/admin/pages/structure) ให้ลากจัดทั้งลำดับและชั้นแม่-ลูกได้ในจอเดียว เมื่อบันทึก ระบบจะซิงก์ลำดับและหน้าแม่ไปยังหน้าแปลภาษาอื่นในกลุ่มเดียวกันให้ด้วย

URL ที่ได้จริงบนเว็บสาธารณะ

เนื้อหาURL
หน้าที่ slug เป็น home/ (เปิด /home จะถูก redirect 301 มาที่ /)
หน้าทั่วไป/{slug}
หน้าลูก/{slug-แม่}/{slug-ลูก}
บทความ/posts/{slug} เป็นค่าเริ่มต้น — ดูแท็บ URL ที่ ตั้งค่า → ทั่วไป
ภาษาอื่นที่ไม่ใช่ภาษาหลักเติมรหัสภาษาไว้หน้าสุด เช่น /th/about-us, /th/posts/hello

เว็บใหม่ทุกเว็บมาพร้อมหน้า Home (slug home) ที่มีข้อความ “COMING SOON” อยู่ แก้หน้านี้ได้เลย ถ้าไม่มีหน้า slug home ที่เผยแพร่อยู่ ระบบจะหยิบหน้าที่เผยแพร่แล้วอันแรกสุดมาเป็นหน้าแรกให้

หน้านี้เปลี่ยนแค่หน้าแรก หน้าอื่นยังเปิดอยู่ทั้งหมด ถ้าต้องการปิดทั้งเว็บระหว่างปรับปรุง ให้ใช้ ตั้งค่า → สถานะเว็บไซต์ ดู ปิดปรับปรุงเว็บ และหน้าเร็วๆ นี้

หน้าเพจมาก่อนเสมอ ถ้ามีหน้าที่ slug ตรงกับ URL ที่ผู้ชมเปิด ระบบจะแสดงหน้านั้น ก่อนจะไปดูเส้นทางของเนื้อหาชนิดอื่น ยกเว้นเส้นทางเหล่านี้ที่กันไว้ให้เนื้อหาชนิดอื่น ระบบไม่ได้ห้ามตอนบันทึก แต่หน้าที่ตั้ง slug ชนกับเส้นทางพวกนี้จะไม่ถูกแสดงเลย

search · posts · blog · news · events · products · tours · staffs · authors · books · docs · category · tag · product-categories · product-tags · product-brands · tour-category · book-categories · robots.txt · sitemap.xml · llms.txt

หน้าร้านทำงานกลับกัน: /cart, /checkout และ /orders/… ไม่อยู่ในรายการนี้ ดังนั้นถ้าคุณบันทึกหน้าเพจที่ slug cart หรือ checkout ระบบจะแสดงหน้านั้น ไม่ใช่หน้าร้านที่ระบบมีให้ ตั้งหน้านั้นเป็นฉบับร่างหรือลบเมื่ออยากใช้หน้าร้านของระบบ

คุณย้าย URL ของบทความได้ ที่ ตั้งค่า → ทั่วไป → URL → บทความ เลือกได้ 4 แบบ คือ /posts/my-article (ค่าเริ่มต้น), /blog/my-article, /news/my-article หรือ /my-article แบบไม่มีคำนำหน้าเลย ไม่ว่าจะเลือกแบบไหน อีก 3 แบบก็ยังใช้งานได้ ระบบจะ redirect ไปยังแบบที่เลือกให้ ดังนั้นลิงก์ที่เผยแพร่หรือแชร์ไปแล้วจะไม่เสีย

สองเรื่องที่ควรรู้ก่อนเปลี่ยน

  • แบบ ไม่มีคำนำหน้า บทความกับเพจอาจต้องการ URL เดียวกัน กรณีนี้เพจจะชนะ และบทความนั้นยังเข้าถึงได้ที่ /posts/{slug} ระบบจะบอกให้ทราบก่อนบันทึกว่ามีบทความไหนบ้างที่โดนกรณีนี้ และจะไม่ยอมให้ตั้ง slug ของบทความใหม่ซ้ำกับเพจที่มีอยู่
  • ถ้ามีกฎ redirect ที่ เครื่องมือ → Redirects ซึ่งชี้ไปที่ /posts/… ต้องแก้ก่อน ระบบจะบล็อกการเปลี่ยนไว้จนกว่าจะแก้เสร็จ เพราะกฎที่ชี้ไปทางหนึ่งขณะที่เว็บ redirect กลับมาอีกทาง จะทำให้ผู้ชมวนลูปไม่รู้จบ

เว็บที่ย้ายมาจาก WordPress

ทีม SeedWebs เปิดฟีเจอร์ทดลอง (experimental) ให้เว็บที่ย้ายมาจาก WordPress ได้ เฉพาะเว็บเหล่านี้เท่านั้นที่เห็นค่าด้านล่าง แต่ละค่าทำให้เว็บตอบแบบเดียวกับเว็บ WordPress เดิม ถ้าที่อยู่นั้นเป็นบทความหรือหน้าจริง หรือมีกฎ redirect ใน Tools ▸ Redirects อยู่แล้ว จะใช้อันนั้นก่อนเสมอ และการ redirect (301) ของค่าเหล่านี้คงส่วนหลัง ? ของลิงก์ไว้

สวิตช์ที่ Settings ▸ General ▸ WordPress

สวิตช์เมื่อเปิดอยู่
slug ภาษาไทยบทความ หน้า หมวดหมู่ และแท็ก ใช้ slug ภาษาไทยหรือภาษาอื่นได้ ประกอบด้วยตัวอักษร ตัวเลข และ - _ . คั่นระหว่างกัน ห้ามมีช่องว่าง อักขระที่มองไม่เห็น สัญลักษณ์อื่น หรืออักขระที่หน้าตาเหมือนตัวอื่น (ตัวอักษรเต็มความกว้างหรือตัวตกแต่ง หรือพิมพ์ ํ + า แทน ำ) ชื่อเรื่องภาษาไทยจะได้ slug ภาษาไทย การนำเข้าเก็บ URL เดิมไว้ทุกตัวอักษร และเว็บตอบ URL ภาษาไทยได้ไม่ว่าเบราว์เซอร์จะเข้ารหัสแบบไหน เนื้อหาส่วนอื่นยังต้องใช้ slug ภาษาอังกฤษ ถ้าปิดภายหลัง slug ที่บันทึกไว้ไม่เปลี่ยน แต่ลิงก์บางส่วน (เช่น URL ภาษาไทยแบบไม่มีคำนำหน้า) อาจใช้ไม่ได้ เมื่อเริ่มใช้แล้วจึงควรเปิดไว้ตลอด
ลิงก์ด้วยเลข ID/15/05/2020/841/ (วันที่เป็นอะไรก็ได้), /?p=841, /?page_id=… และ /?attachment_id=… ไปยังบทความ หน้า หรือไฟล์ที่นำเข้ามา โดยไปที่ภาษาของผู้เข้าชมถ้ามีคำแปลที่เผยแพร่แล้ว ต้องเปิด ก่อน นำเข้า เนื้อหาที่นำเข้าไว้ก่อนหน้าจะถูกบันทึกเมื่อนำเข้าไฟล์เดิมซ้ำเท่านั้น ID ที่ไม่ได้นำเข้าหรือยังไม่เผยแพร่ รวมถึงไฟล์ที่แนบกับบทความหรือหน้าที่ยังไม่เผยแพร่ จะแสดงหน้าไม่พบ
แบ่งหน้าด้วย /page/2หน้าแรก หมวดหมู่บทความ แท็ก และหน้าผู้เขียนที่อยู่ที่ /author/ แบบ WordPress ใช้ /…/page/2/ แทน ?page=2 แต่ละหน้านับเฉพาะบทความในภาษาของตัวเอง ลิงก์ /page/1 และ ?paged=2 แบบเก่าจะ redirect หน้าที่เกินหน้าสุดท้ายแสดงหน้าไม่พบ และ /page/2 ของหน้าแรกแสดงหน้าแรก จำนวนบทความต่อหน้ากำหนดในธีม ({{#each posts limit=11}} ในเทมเพลตหมวดหมู่ แท็ก และผู้เขียน) รายการอื่นยังใช้ ?page=2
หน้ารวมตามวันที่/2024/, /2024/05/ และ /2024/05/08/ แสดงบทความของปี เดือน หรือวันนั้น ในภาษาของหน้านั้น นับตามเขตเวลาของเว็บ ใช้เทมเพลต date-archive ของธีม ({{archive_title}} แสดง “พฤษภาคม 2024”) และขอให้เครื่องมือค้นหาไม่เก็บเข้าดัชนี
หน้าค้นหา/?s=คำค้น และ /search/คำค้น/ ค้นแบบเดียวกับ WordPress (ทุกคำต้องปรากฏ เรื่องที่ชื่อตรงขึ้นก่อน) เฉพาะภาษาของหน้านั้น และไม่ถูกเก็บเข้าดัชนี ส่วน /search?q= ของเว็บยังเหมือนเดิม
ฝังโพสต์ในเว็บอื่น/ที่อยู่โพสต์/embed/ แสดงการ์ดเล็ก ๆ ที่เว็บ WordPress อื่นใส่ในกรอบเมื่อเคยฝังโพสต์ของคุณ
หน้าไฟล์แนบ → ตัวไฟล์หน้าเดิมของไฟล์ /ที่อยู่โพสต์/ชื่อไฟล์/ จะ redirect ไปยังตัวไฟล์ โดยใช้หมายเลขของ WordPress ที่ทีมย้ายเว็บบันทึกไว้
ลิงก์หมวดหมู่ แท็ก ผู้เขียน/?cat=5, /?tag=news และ /?author=3 redirect ไปยังหน้าหมวดหมู่ แท็ก หรือผู้เขียนนั้น โดยใช้หมายเลขของ WordPress ที่ทีมย้ายเว็บบันทึกไว้
ลิงก์ผิดภาษา → ฉบับแปลบทความภาษาอังกฤษที่เปิดโดยไม่มี /en/ หรือบทความหรือหน้าภาษาไทยที่เปิดใต้ /en/ จะไปยังฉบับแปลที่เผยแพร่แล้วในภาษาที่ถูกเรียก ถ้าไม่มีก็ไปที่อยู่ของตัวเอง (/en/contact-us/ ไปถึง /en/contact/) ควรเชื่อมฉบับแปลก่อน (+ Link existing translation) บทความที่ไม่ได้เชื่อมจะไปภาษาของตัวเองเสมอ ถ้าไม่เปิดสวิตช์ บทความที่มีแค่ในอีกภาษาจะแสดงที่ที่อยู่ที่ถูกเรียก และหน้าจะขึ้นว่าไม่พบ
เดาลิงก์ที่พิมพ์ไม่ครบที่อยู่ที่จะแสดงหน้าไม่พบจะไปที่เดียวกับที่ WordPress เคยส่งไป คือบทความหรือหน้าที่เผยแพร่แล้วตัวแรกตามลำดับของ WordPress ภาษาใดก็ได้ ซึ่ง slug ขึ้นต้นด้วยส่วนท้ายของที่อยู่นั้น (/huawei-watch-gt-7/ ไปถึง /huawei-watch-gt-7-series/) เดาเฉพาะที่อยู่หนึ่งหรือสองส่วน ส่วนฟีด ไฟล์ และที่อยู่หมวดหมู่ แท็ก ผู้เขียน และหน้าค้นหา ยังแสดงหน้าไม่พบ
Sitemap แบบ Yoast SEOเว็บมี /sitemap_index.xml และไฟล์ชื่อเดียวกับของ Yoast (post-sitemap.xml, post-sitemap2.xml ไปเรื่อย ๆ, page-, category-, post_tag- และ author-sitemap.xml) ไฟล์ละ 1,000 ที่อยู่ พร้อมลิงก์ภาษาอื่นและรูปภาพ หมวดหมู่ แท็ก และผู้เขียนจะอยู่ใน sitemap เฉพาะที่มีบทความเผยแพร่แล้ว /sitemap.xml และที่อยู่ sitemap ของ WordPress จะ redirect ไปที่ index และ robots.txt ชี้ไปที่ index ถ้าปิด เว็บกลับไปใช้ /sitemap.xml

การ์ด หลายภาษา (WPML) ในแท็บเดียวกัน

  • ลิงก์ภาษาอื่น (hreflang): เฉพาะใน sitemap ใส่ลิงก์ “หน้านี้ในภาษาอื่น” ไว้ใน sitemap เท่านั้น แบบ WPML กับ Yoast ส่วน ไม่แสดงเลย จะไม่ใส่ใน sitemap ด้วย
  • ตัวเปลี่ยนภาษา: ซ่อนภาษาที่หน้านี้ไม่มีคำแปล จะไม่แสดงภาษานั้น แทนที่จะลิงก์ไปหน้าแรกของภาษานั้น
  • หมวดหมู่และแท็ก: แยกตามภาษา ให้หมวดหมู่หรือแท็กมีที่อยู่ของแต่ละภาษา และมีอยู่ในบางภาษาเท่านั้นได้ (/en/tag/video-streaming-2 กับ /tag/ding-yuxi เป็นแท็กเดียวกันได้) หน้าของมันแสดงเฉพาะบทความภาษาของหน้านั้น ถ้าเปิดในภาษาที่มันไม่มีอยู่ จะแสดงบทความภาษานั้นที่ติดหมวดหมู่หรือแท็กนี้ (ส่วนใหญ่ไม่มี) และบอกเครื่องมือค้นหาว่าหน้าจริงอยู่ในภาษาของตัวเอง ส่วน sitemap แบบ Yoast จะใส่ไว้เฉพาะในภาษาที่มีอยู่ ทีมย้ายเว็บเป็นผู้ตั้งที่อยู่แยกตามภาษา และหมวดหมู่ต้องเปิดที่อยู่หมวดหมู่แบบซ้อนด้วย (ดู หมวดหมู่และแท็กของบทความ)

แถว ฟีดภายนอก ในแท็บเดียวกัน (กด จัดการ เพื่อเปิด) ใช้กับเว็บที่ธีม WordPress เดิมแสดงข่าวประชาสัมพันธ์จาก Dataxet ปุ่ม เพิ่มข่าวประชาสัมพันธ์ Dataxet ตั้งค่าให้เหมือนธีมเดิม: แท็ก {{external_feed feed="dataxet_pr" lang="th" limit="50"}} ในเนื้อหาหน้าแสดงข่าวล่าสุด 50 ชิ้น (ดู แท็กเทมเพลต) และข่าวแต่ละชิ้นมีหน้าที่ /pr-th/<id>/ และ /pr-en/<id>/ ในทุกภาษา ระบบดึงข่าวจาก Dataxet ตอนสร้างหน้าและเก็บไว้ 5 นาที ไม่มีอะไรถูกคัดลอกเข้ามาในเว็บ สวิตช์ข้างฟีดปิดฟีดได้เมื่อกดบันทึก ที่อยู่ของข่าวจะหาไม่พบ และแท็กจะแสดงตามที่พิมพ์ไว้ จึงควรเอาแท็กออกจากหน้าด้วย แก้ไขแบบ JSON (กด นำไปใช้ แล้วบันทึก) ใช้ตั้งค่าที่เหลือ เช่น เทมเพลตของหน้าข่าว ระยะเวลาที่เก็บ และเขตเวลา

สวิตช์ ฟีด RSS ในแท็บเดียวกัน เมื่อเปิด เว็บจะตอบ /feed/, /category/…/feed/, /tag/…/feed/, /author/…/feed/, /comments/feed/ และ /feed/ ต่อท้ายบทความหรือหน้าใดก็ได้ (ว่างเสมอ เพราะเว็บนี้ไม่มีระบบความเห็น) เติม /atom/ ต่อท้ายได้ทุกตัว และใช้ /en/… สำหรับแต่ละภาษาโดยแสดงเฉพาะบทความภาษานั้น ทุกหน้าบอกโปรแกรมอ่านฟีดว่าฟีดอยู่ที่ไหน และ /feed/rss2/ กับ /rss/ จะ redirect ไปที่ฟีดเหล่านี้ ช่องของสวิตช์นี้ตั้งได้ว่าฟีดแสดงกี่บทความ (เว้นว่าง = 10) ส่งบทความเต็มหรือเรื่องย่อ และข้อความที่ Yoast SEO ใส่ก่อนและหลังแต่ละบทความ (คัดลอกจาก Yoast SEO ▸ Settings ▸ RSS ของเว็บเก่า)

จับคู่ URL แบบ WordPress ที่ เครื่องมือ ▸ Redirects สำหรับเว็บที่เคยใช้ปลั๊กอิน Redirection ของ WordPress ส่งต่อ query string ไปกับรีไดเรกต์ ทำให้ /old-page?utm_source=facebook ไปถึง /new-page?utm_source=facebook ถ้าปิด ส่วนหลัง ? จะถูกตัดทิ้ง ไม่สนใจตัวพิมพ์ใหญ่เล็กในที่อยู่ ทำให้รีไดเรกต์ของ /life รับ /LIFE ด้วย และหน้า บทความ หมวดหมู่ หรือแท็กที่พิมพ์ตัวใหญ่จะแสดงหน้านั้น เช่น /GREEN-FINANCE/ แสดง /green-finance/ ซึ่งยังเป็นที่อยู่ canonical ส่วน /tag/ และ /category/ ยังต้องเป็นตัวเล็กเหมือนใน WordPress ทั้งสองสวิตช์มีผลกับรีไดเรกต์ทั้งหมดภายในหนึ่งนาที

หน้ารายการ (All Pages / All Posts)

  • แท็บสถานะ All, Published, Draft, Trash วงเล็บตัวเลขแสดงเฉพาะแท็บที่กำลังเลือก แท็บที่มี 0 รายการจะถูกซ่อน ยกเว้นแท็บ All และแท็บที่เลือกอยู่
  • ช่องค้นหา ค้นจากชื่อเรื่องและเนื้อหา
  • ตัวกรองภาษา อยู่ขวาสุดของหัวข้อ เมื่อเว็บเปิดหลายภาษา
  • ตัวกรองหมวดหมู่ มีให้ทุกชนิดเนื้อหาที่มีหมวดหมู่ (บทความ, กิจกรรม, หนังสือ, หลักสูตร, บุคลากร, สมาชิก, สินค้า, ทัวร์, ผู้เขียน) เลือกหมวดแม่จะเห็นรายการในหมวดย่อยทั้งหมดด้วย ส่วนเพจไม่มีหมวดหมู่จึงไม่มีตัวกรองนี้
  • ตัวกรองจาก Custom Fields ฟิลด์ที่คุณกำหนดเองจะกลายเป็นตัวกรองในหน้ารายการ เมื่อติ๊กช่อง Filter ให้ฟิลด์นั้น — ติ๊กที่หน้า Custom Fields ของชนิดเนื้อหานั้น (/admin/{ชนิดเนื้อหา}/fields ส่วนสินค้าอยู่ที่ /admin/store/products/fields) หรือที่เทมเพลตสำหรับเพจ ฟิลด์แบบ select จะกลายเป็นดรอปดาวน์ตามตัวเลือกที่ตั้งไว้ แบบ checkbox เป็นใช่/ไม่ และแบบข้อความเป็นช่องค้นหาแบบมีคำนั้นอยู่ ถ้าไม่ติ๊กเลยก็จะไม่มีแถบตัวกรองขึ้นมา
  • ปุ่มเลือกคอลัมน์ ปรับได้ว่าจะเห็นคอลัมน์ไหน ปุ่ม Save as default (บันทึกเป็นค่าเริ่มต้นของทั้งเว็บ) แสดงเฉพาะบทบาท super_admin และ admin
  • Duplicate สร้างสำเนาชื่อ ... (Copy) เป็นสถานะ Draft พร้อม slug ใหม่ บทความจะคัดหมวดหมู่และแท็กมาด้วย แต่ผู้เขียนของสำเนาจะกลายเป็นคนที่กดคัดลอก ไม่ใช่ผู้เขียนเดิม
  • เลือกหลายรายการ แถบเครื่องมือด้านบนให้เปลี่ยนสถานะ เปลี่ยนภาษา และย้ายไปถังขยะทีเดียว งานกลุ่มเหล่านี้ใช้ได้กับบทบาท super_admin และ admin การเลือกนับเฉพาะแถวที่เห็นอยู่ ถ้าเปลี่ยนแท็บ เปลี่ยนหน้า ค้นหา หรือเปลี่ยนภาษาหรือตัวกรอง แถวที่ติ๊กไว้แต่ไม่ได้แสดงแล้วจะถูกยกเลิกการเลือก
  • รายการหน้าจะแสดงหน้าลูกเยื้องใต้หน้าแม่

ถังขยะและการกู้คืน

ในแท็บ Trash แต่ละแถวมีปุ่ม Restore ซึ่งกู้กลับมาเป็นสถานะ Draft (ไม่กลับไปเป็น Published ให้เอง) และมีปุ่ม Empty Trash ที่ลบทุกอย่างในถังขยะออกอย่างถาวร กู้ไม่ได้

ข้อควรระวังหลังกู้คืน: slug ของรายการที่เคยเข้าถังขยะจะยังเป็น {slug}-trashed-{ตัวเลข} ให้แก้ slug กลับเองก่อนเผยแพร่ซ้ำ

บันทึกแล้วแต่เว็บยังไม่เปลี่ยน

เว็บสาธารณะมีแคชอยู่ชั้นหนึ่ง หลังบันทึกงานที่เป็น Published ผู้ชมอาจยังเห็นเนื้อหาเดิมอีกประมาณหนึ่งนาที รอครบนาทีแล้วโหลดใหม่ (เวลาบันทึกหน้าเพจ ระบบจะขึ้นข้อความเตือนเรื่องนี้ให้ ส่วนบทความขึ้นแค่ว่าบันทึกแล้ว แต่แคชทำงานเหมือนกัน)

หน้าที่เป็น Draft จะไม่ปรากฏบนเว็บสาธารณะเลย และระบบไม่มีลิงก์พรีวิวสำหรับ Draft ถ้าต้องการดูของจริงก่อนประกาศ วิธีที่ทำได้คือเผยแพร่หน้านั้นโดยไม่ใส่ลิงก์ไว้ในเมนู แล้วเปิด URL ตรง ๆ (ดู เมนู)

ใครทำอะไรได้

งานsuper_adminadmineditorwriter
ดูรายการทั้งหมดทั้งหมดทั้งหมดเฉพาะของตัวเอง
สร้างใหม่ได้ได้ได้ได้ (บังคับเป็น Draft)
แก้ไขทุกชิ้นทุกชิ้นทุกชิ้นเฉพาะ Draft ของตัวเอง
เผยแพร่ / ย้ายถังขยะได้ได้ได้ไม่ได้
งานกลุ่มหลายรายการได้ได้ไม่ได้ไม่ได้

รายละเอียดเพิ่มเติมของบทบาท writer

  • เห็นและแก้ได้แค่รายการที่ตัวเองสร้าง
  • ปุ่มสถานะ Published ไม่แสดงในฟอร์มของ writer เลย เหลือแค่ Draft และถ้ามีคำสั่งบันทึกเป็น Published ส่งเข้ามาทางอื่น ระบบจะลดลงเป็น Draft ให้เงียบ ๆ
  • เมื่อ editor หรือ admin เผยแพร่งานของ writer แล้ว writer จะแก้ต่อไม่ได้ ระบบตอบว่าต้องให้ editor เปลี่ยนกลับเป็น Draft ก่อน
  • ชื่อผู้เขียนบนบทความถูกล็อกเป็นตัว writer เอง เลือกคนอื่นและใส่ผู้เขียนร่วมไม่ได้

อ่านเรื่องบทบาทและการเพิ่มผู้ใช้ได้ที่ ผู้ใช้และสิทธิ์

ตัวช่วย AI ในฟอร์ม (ต้องใส่คีย์ก่อน)

ปุ่ม AI ที่มุมขวาบนของฟอร์ม และปุ่ม Translate (แปล) ข้างช่องชื่อเรื่อง จะโผล่เฉพาะเมื่อกรอก API key ไว้ที่ Settings → General → AI (/admin/settings/general เข้าได้เฉพาะ super_admin กับ admin) ปุ่มแปลยังต้องการอีกสองเงื่อนไขคือหน้านั้นถูกเชื่อมกลุ่มคำแปลแล้ว และกำลังแก้ในภาษาที่ไม่ใช่ภาษาหลักของเว็บ

หัวข้อที่เกี่ยวข้อง