--------------- <> -----------------
--- KHOA HỌC - CÔNG NGHỆ - GIÁO DỤC - VIỆC LÀM ---
--- Học để đi cùng bà con trên thế giới ---

Tìm kiếm trong Blog

WordPress (4) - Các thành phần của WordPress

Bài trước: WordPress (3) - Tải và chạy WordPress
-----

4. Các thành phần của WordPress

Ở các bài trước, bạn đã tìm hiểu và làm được một số nội dung sau:

- Hiểu được web server để làm gì

- Làm sao tạo ra được một web server trên máy cục bộ

- Trên web server (Apache) tạo được thư mục cho dự án web

- Tải được mã nguồn của WordPress từ mạng về máy cục bộ

- Chép toàn bộ mã nguồn của WordPress vào thư mục dự án (website)

- Tạo cơ sở dữ liệu mới cho website

- Cấu hình để kết nối chương trình WordPress vào cơ sở dữ liệu vừa tạo

- Tạo được tài khoản để đăng nhập vào chương trình WordPress, nhằm cấu hình và tạo website sau này

- Khởi chạy được chương trình WordPress, từ chương trình này sẽ cấu hình và tạo website

Trước khi có thể sử dụng WordPress để tạo ra website, chúng ta cùng tìm hiểu về cách thành phần, cơ chế làm việc của WordPress

4.1 Các thành phần quan trọng của WordPress

Mã nguồn WordPress được chia thành 3 thành phần chính, lưu trữ trong thư mục dự án của bạn (ví dụ trong congtyteo):

[1] Các tập tin cấu hình (root files). Đây là các tập tin quan trọng nằm ở thư mục gốc của dự án:

- wp-config.php: Tập tin cấu hình chính. Chứa các thiết lập quan trọng như thông tin kết nối cơ sở dữ liệu (database credentials), các khóa bảo mật (security keys), và các tùy chọn nâng cao khác

Bạn hãy mở wp-config.php bằng một trình soạn mã nguồn (ví dụ: VS Code) để quan sát nội dung bên trong. Bạn sẽ thấy các thông tin kết nối tới cơ sở dữ liệu mà bạn đã khai báo.

[wp-config.php]

define( 'DB_NAME', 'wp_congtyteo' );

/** Database username */

define( 'DB_USER', 'root' );

/** Database password */

define( 'DB_PASSWORD', '' );

/** Database hostname */

define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */

define( 'DB_CHARSET', 'utf8mb4' );

/** The database collate type. Don't change this if in doubt. */

define( 'DB_COLLATE', '' );

- index.php: Tập tin chịu trách nhiệm khởi động toàn bộ WordPress. Mọi yêu cầu truy cập website đều đi qua tập tin này. Hiện tại, tập tin index.php chưa có thông tin gì đáng kể.

[index.php]

define( 'WP_USE_THEMES', true );


/** Loads the WordPress Environment and Template */

require __DIR__ . '/wp-blog-header.php';

[2] Các thư mục chính

- wp-admin/: Chứa tất cả các tập tin cần thiết để tạo ra Bảng điều khiển (Dashboard) quản trị. Đây là giao diện bạn dùng để viết bài, cài đặt plugin và quản lý website

- wp-includes/: Chứa các tập tin framework, thư viện và chức năng cần thiết để WordPress hoạt động, ví dụ: các hàm xử lý dữ liệu, giao diện, truy vấn

[3] Thư mục chứa nội dung và thành phần mở rộng

Đây là thư mục chứa tất cả nội dung và các yếu tố mở rộng do người dùng cài đặt:

- wp-content/themes/: Chứa tất cả các Giao diện (themes) đã cài đặt. Theme quyết định giao diện và bố cục trình bày của website

- wp-content/plugins/: Chứa tất cả các Phần bổ trợ (plugins). Plugins thêm các chức năng mới (ví dụ: thương mại điện tử, SEO, bảo mật) mà mã nguồn lõi không có

- wp-content/uploads/: Chứa tất cả các tin đa phương tiện (hình ảnh, video, tài liệu) mà bạn tải lên

Như đã biết, cái dở của WordPress là kích thước của dự án khá lớn, mặc dù bạn chưa tạo ra bất kỳ trang web nào mới cho dự án. Bạn có thể vào File Explorer, xem thử kích thước của thư mục dự án là bao nhiêu? (71MB?).

4.2 Cơ chế hoạt động của WordPress

Do WordPress là một ứng dụng web, nên nó hoạt động theo mô hình client-server. Với mô hình client-server, các hoạt động chính bao gồm: gửi yêu cầu, nhận yêu cầu, xử lý yêu cầu, truy cập cơ sở dữ liệu, kết xuất giao diện, trả về kết quả, và hiển thị. Các hoạt động này sẽ diễn ra ở cả máy người dùng (trình duyệt web) và máy web server.

Các hoạt động được mô tả chi tiết hơn ở bảng sau:

Bước

Diễn giải

Thành phần liên quan

1. Gửi yêu cầu (Request)

Người dùng gõ địa chỉ website (ví dụ: http://congtyteo.com) vào trình duyệt và nhấn Enter

Trình duyệt (Client)

2. Tiếp nhận yêu cầu

Yêu cầu được gửi tới web server Apache của bạn. Apache chuyển yêu cầu đến tập tin index.php của WordPress

Apache (Web Server)

3. Xử lý logic phía back-end (mã PHP)

WordPress đọc wp-config.php để xác định thông tin database, và chạy các đoạn mã (script) trong wp-includes/ để khởi tạo môi trường

PHP Engine

4. Truy vấn database

PHP gửi các lệnh truy vấn (SQL Query) tới MySQL để lấy về các dữ liệu cần thiết, ví dụ: Tiêu đề, nội dung bài viết, thiết lập Theme, danh sách Plugins

MySQL (Database Server)

5. Kết xuất giao diện

PHP kết hợp dữ liệu (từ MySQL) với mã của Theme (từ wp-content/themes) để tạo ra một tệp HTML hoàn chỉnh

Theme, Plugins

6. Trả về kết quả cho Client (Response)

Apache gửi tệp HTML đã hoàn chỉnh trở lại trình duyệt của người dùng

Apache

7. Hiển thị kết quả lên trình duyệt

Trình duyệt nhận tệp HTML và hiển thị trang web congtyteo.com cho người dùng

Trình duyệt (Client)

Để dễ hiểu hơn, chúng ta cùng nhìn lại quá trình chúng ta tạo ra website cho công ty có tên là congtyteo.

- Tạo thư mục dự án có tên là congtyteo trong web server Apache, cụ thể là trong thư mục XAMPP\htdocs

- Nhúng toàn bộ mã nguồn của WordPress vào trong thư mục dự án congtyteo

- Tạo ra một cơ sở dữ liệu cho website có tên là db_congtyteo

Khi đó, nếu có người dùng truy cập website của bạn, ví dụ, khi bạn nhập đường dẫn sau vào cửa sổ trình duyệt: http://localhost/congtyteo và bấm phím Enter. Quá trình hoạt động của một website dựa trên WordPress sẽ diễn ra như sau:

[1] Apache nhận yêu cầu, chạy index.php

[2] PHP kết nối MySQL (db_congtyteo) bằng thông tin trong wp-config.php

[3] PHP truy vấn MySQL: "Hãy cho tôi nội dung trang chủ."

[4] MySQL trả về dữ liệu văn bản, đường dẫn ảnh, và các tùy chọn

[5] PHP kết hợp dữ liệu này với mã HTML/CSS/JS của Theme (từ wp-content/themes), rồi gửi về trình duyệt

[6] Trình duyệt nhận kết quả trả về của web server, và hiển thị trang web congtyteo cho người dùng

Cơ chế tổ chức của dữ liệu (cơ sở dữ liệu) trong WordPress được tổ chức như sau:

Dữ liệu

Nơi lưu trữ

Ý nghĩa

Tên Database, Username

wp-config.php

Thông tin để WordPress kết nối tới Database.

Tên công ty, Slogan

db_congtyteo (Bảng wp_options)

Thiết lập cơ bản của website

Bài viết "Hello world”

db_congtyteo (Bảng wp_posts)

Nội dung tĩnh và động của website

Ảnh logo của công ty

wp-content/uploads/2025/10/logo.png

Tập tin được web server sử dụng

Mã nguồn của Theme

wp-content/themes/ten_theme/

Mã nguồn định hình giao diện và bố cục

4.3 Bài tập và câu hỏi

Bài tập 4a. Bạn hãy mở tập tin wp_config.php, đọc và cho biết các thông tin sau:

- Tên (hay địa chỉ) của máy chủ cơ sở dữ liệu (hostname của database server)

- Tên của cơ sở dữ liệu WordPress sẽ kết nối vào

- Khi kết nối vào cơ sở dữ liệu thì dùng tài khoản: Tên đăng nhập (username) và mật khẩu (password) là gì

Bài tập 4b. Bạn hãy mở bảng wp_options trong cơ sở dữ liệu của dự án (ví dụ db_congtyteo), và cho biết các thông tin sau:

- URL của website (siteurl):

- Trang chủ mặc định của website (home):

- Tiêu đề của website (title):

- Email của admin (admin_email):

Bài tập 4c. Hãy mở bảng wp_posts trong cơ sở dữ liệu của dự án (ví dụ: db_congtyteo), và cho biết các thông tin sau:

- Tổng cộng có bao nhiêu bài viết (post) trên website:

- Bao nhiêu bài viết ở trạng thái xuất bản (published):

- Bao nhiêu bài viết ở trạng thái bản nháp (chưa xuất bản) (draft):

- Bao nhiêu bài viết cho bình luận (comment):

Câu hỏi 1. Để có thể khởi chạy một website dựa trên WordPress, cần thực hiện các việc sau, phát biểu nào không đúng?

A. Chép toàn bộ mã nguồn của WordPress vào thư mục dự án

B. Tạo một cơ sở dữ liệu rỗng trong MySQL

C. Dùng trình duyệt, truy cập vào thư mục gốc của dự án, để thực hiện các khai báo về cơ sở dữ liệu và tài khoản truy cập trang admin của WordPress

D. Tạo các bảng trong cơ sở dữ liệu MySQL

Câu hỏi 2. Mô hình hoạt động của một website dựa trên WordPress diễn ra như sau, phát biểu nào không đúng?

A. Trình duyệt gửi trả lời (response) về cho web server

B. Web server tiếp nhận, xử lý và trả về kết quả cho trình duyệt web

C. Web server đọc và ghi dữ liệu vào cơ sở dữ liệu

D. Trình duyệt nhận kết quả trả về của web server và hiển thị lên giao diện

-----
Bài sau: