โครงสร้างไฟล์ของเว็บไซต์ WordPress

Sirichai Teerapattarasakul

Sirichai Teerapattarasakul / June 01, 2025

3 min read

ทำความเข้าใจโครงสร้างไฟล์ของเว็บไซต์ WordPress แบ่งออกเป็นสองระดับหลัก คือ โครงสร้างไฟล์ระบบหลัก (Core) และ โครงสร้างไฟล์สำหรับธีม/ปลั๊กอิน/อัปโหลด โดยแต่ละส่วนมีหน้าที่ดังนี้

1. โครงสร้างไฟล์ระบบหลัก (WordPress Core)

เมื่อติดตั้ง WordPress จะมีไฟล์และโฟลเดอร์หลักใน root directory ดังนี้

ไฟล์/โฟลเดอร์หน้าที่
wp-admin/โฟลเดอร์สำหรับไฟล์ระบบหลังบ้าน (Dashboard, การจัดการผู้ใช้, การตั้งค่า ฯลฯ)
wp-includes/โฟลเดอร์เก็บไฟล์ฟังก์ชันหลักของ WordPress (Core functions, classes, APIs)
wp-content/โฟลเดอร์เก็บข้อมูลที่ผู้ใช้สร้างขึ้น (Themes, Plugins, Uploads)
index.phpไฟล์หลักที่ใช้เป็น entry point ของเว็บไซต์
wp-config.phpไฟล์ตั้งค่าหลัก เช่น การเชื่อมต่อฐานข้อมูล, ค่าคอนฟิกต่างๆ
.htaccessไฟล์สำหรับตั้งค่า Apache Server (เช่น rewrite rules)
wp-login.phpไฟล์สำหรับหน้าเข้าสู่ระบบ
wp-settings.phpไฟล์สำหรับโหลดและตั้งค่าระบบ WordPress
wp-cron.phpไฟล์สำหรับระบบ cron jobs ของ WordPress
xmlrpc.phpสำหรับเชื่อมต่อกับบริการภายนอกผ่าน XML-RPC
readme.html, license.txtไฟล์ข้อมูลเกี่ยวกับ WordPress

หมายเหตุ: หลีกเลี่ยงการแก้ไขไฟล์ใน wp-admin และ wp-includes เพราะเป็นไฟล์ระบบหลัก อัปเดต WordPress จะเขียนทับไฟล์เหล่านี้ทุกครั้ง.

2. โฟลเดอร์ wp-content/

โฟลเดอร์นี้เป็นที่เก็บข้อมูลสำคัญที่ผู้ใช้สร้างและปรับแต่งเอง ประกอบด้วย

  • themes/ : เก็บธีมทั้งหมดของเว็บไซต์ (แต่ละธีมมีโฟลเดอร์ของตัวเอง)
  • plugins/ : เก็บปลั๊กอินทั้งหมดที่ติดตั้ง
  • uploads/ : เก็บไฟล์มีเดียที่อัปโหลดผ่าน WordPress (เช่น รูปภาพ, วิดีโอ, ไฟล์เอกสาร ฯลฯ) โดยจัดเป็นปี/เดือน
  • languages/ : เก็บไฟล์แปลภาษา

3. โครงสร้างไฟล์ธีม WordPress (Theme Structure)

แต่ละธีมใน wp-content/themes/ จะมีไฟล์หลักที่สำคัญ เช่น

ไฟล์/โฟลเดอร์หน้าที่
style.cssไฟล์ stylesheet หลัก และ meta ข้อมูลของธีม (Theme Name, Author, Version ฯลฯ)
index.phpไฟล์เทมเพลตหลัก ใช้แสดงผลหน้าเว็บเมื่อไม่มีไฟล์อื่นที่ตรงกับเงื่อนไข
functions.phpไฟล์สำหรับเขียนฟังก์ชันเสริมและ hook ต่างๆ
header.phpส่วนหัวของเว็บไซต์ (โลโก้, เมนู, meta tags, ฯลฯ)
footer.phpส่วนท้ายของเว็บไซต์ (ลิขสิทธิ์, สคริปต์, ฯลฯ)
sidebar.phpแถบด้านข้าง (Sidebar Widgets)
front-page.phpเทมเพลตสำหรับหน้าแรก (ถ้ามีการตั้งค่าหน้าแรกแบบ static)
home.phpเทมเพลตสำหรับหน้า blog (รายการโพสต์ล่าสุด)
single.phpเทมเพลตสำหรับหน้าโพสต์เดี่ยว (Single Post)
page.phpเทมเพลตสำหรับหน้าเพจทั่วไป (เช่น About, Contact)
category.phpเทมเพลตสำหรับแสดงหมวดหมู่
tag.phpเทมเพลตสำหรับแสดงป้ายกำกับ (Tag)
archive.phpเทมเพลตสำหรับแสดงหน้า archive (รวมทุกประเภท)
search.phpเทมเพลตสำหรับหน้าค้นหา
404.phpเทมเพลตสำหรับหน้าไม่พบข้อมูล (404 Error)
comments.phpเทมเพลตสำหรับระบบคอมเมนต์
rtl.cssStylesheet สำหรับภาษาแบบขวาไปซ้าย (Right-to-Left)

หมายเหตุ: ธีมสามารถสร้างไฟล์เทมเพลตเฉพาะ เช่น single-{post-type}.php, page-{slug}.php เพื่อปรับแต่งเฉพาะหน้าหรือประเภทโพสต์ได้.

4. ไฟล์กำหนดค่า (Configuration Files)

  • wp-config.php: กำหนดค่าการเชื่อมต่อฐานข้อมูล, คีย์ความปลอดภัย, ค่าคอนฟิกอื่นๆ.
  • .htaccess: กำหนด rewrite rules, การตั้งค่า permalinks, การป้องกันความปลอดภัย ฯลฯ (ใช้กับ Apache)
  • wp-config-sample.php: ตัวอย่างไฟล์ config

5. การจัดเก็บมีเดีย (Media Uploads)

ไฟล์มีเดียที่อัปโหลดผ่าน WordPress จะถูกเก็บใน wp-content/uploads/ แบ่งเป็นโฟลเดอร์ย่อยตามปีและเดือน เช่น uploads/2025/06/.

6. ฐานข้อมูล (Database)

นอกจากไฟล์ทั้งหมดนี้ WordPress ยังใช้ฐานข้อมูล MySQL/MariaDB ในการเก็บข้อมูลสำคัญ เช่น โพสต์, เพจ, คอมเมนต์, ผู้ใช้, การตั้งค่าต่างๆ ฯลฯ.

Workflow การทำงานของเว็บไซต์ WordPress เมื่อเข้าไปที่หน้าแรก

  1. ผู้ใช้ร้องขอหน้าแรก → เว็บเซิร์ฟเวอร์รับคำขอ เว็บเซิร์ฟเวอร์ (เช่น Apache หรือ Nginx) จะรับคำขอ (HTTP Request) นี้
  2. เว็บเซิร์ฟเวอร์เรียก index.php (ผ่าน rewrite จาก .htaccess ถ้ามี) ไฟล์ index.php อยู่ที่ root directory ของ WordPress เพื่อเริ่มต้นการทำงาน ถ้ามีการตั้งค่า .htaccess (สำหรับ Apache) หรือ config อื่นๆ ที่เกี่ยวข้องกับ pretty permalink ระบบจะ redirect หรือ rewrite URL ให้เหมาะสมก่อนถึง index.php
  3. index.php โหลด wp-blog-header.php ไฟล์นี้มีหน้าที่โหลดระบบ WordPress ทั้งหมด
  4. wp-blog-header.php โหลด wp-load.php → wp-config.php wp-load.php ใช้ไฟล์นี้เพื่อเตรียมสภาพแวดล้อม (environment) และ wp-config.php เพื่ออ่านค่าคอนฟิก เช่น การเชื่อมต่อฐานข้อมูล
  5. wp-load.php โหลด wp-settings.php ไฟล์ wp-settings.php นี้จะโหลด core files, plugin, theme และตั้งค่าทุกอย่างที่จำเป็น
  6. WordPress โหลดปลั๊กอิน ธีม และตั้งค่าระบบ
    • WordPress ตรวจสอบว่าเป็นหน้าแรก โดยจะตรวจสอบการตั้งค่าใน Settings > Reading ว่าหน้าแรกของเว็บเป็นแบบไหน
    • ใช้ Template Hierarchy เลือกไฟล์เทมเพลต (front-page.php, home.php, index.php)
    • ถ้าตั้งเป็น "Your latest posts" (แสดงโพสต์ล่าสุด): จะใช้ไฟล์ home.php ของธีม
    • ถ้าตั้งเป็น "A static page" (กำหนดหน้าแรกเอง): จะใช้ไฟล์ front-page.php ของธีม ถ้ามี, รองลงมาคือ page.php, สุดท้ายคือ index.php
    • ถ้าธีมไม่มีไฟล์เทมเพลตเฉพาะ เช่น front-page.php หรือ home.php ระบบจะ fallback ไปที่ index.php เสมอ
  7. ไฟล์เทมเพลตโหลดไฟล์ย่อย (header.php, footer.php ฯลฯ) ตามโครงสร้างธีม
  8. Query ข้อมูลจากฐานข้อมูล และเรนเดอร์ HTML ส่งกลับไปที่เบราว์เซอร์

WordPress Template Hierarchy Source: WordPress.ORG

ข้อมูลอาจจะไม่ครบถ้วน แต่จะอัพเดทไปเรื่อยๆครับ เพราะส่วนตัวต้องกลับมาอ่านเมื่อต้องทำ Theme หรือ Plugin ของ Wordpress หากใครบังเอิญมาหาข้อมูล หวังว่ามีประโยชน์ครับ