--------------- <> -----------------
--- 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:

WordPress (3) - Tải và chạy WordPress

Bài trước: WordPress (2) - XAMPP
-----

3. Tải và chạy WordPress

Tới bài học này, bạn đã cài đặt và chạy được phần mềm XAMPP, là phần mềm có chứa Apache và MySQL.

Apache là dịch vụ Web Server (hay HTTP server). Web server có nhiệm vụ nhận yêu cầu (request) từ trình duyệt, xử lý yêu cầu và trả về kết quả (response) là trang web cho trình duyệt.

Trong phần này, chúng ta sẽ tải mã nguồn của WordPress từ Internet về máy cục bộ, cấu hình để có thể chạy được WordPress trên máy cục bộ.

3.1. Mã nguồn WordPress là gì?

Mã nguồn WordPress là tập hợp các tập tin và thư mục chứa tất cả các thành phần cần thiết để vận hành một Hệ quản lý nội dung (CMS) của bạn.

- Mã nguồn của WordPress chủ yếu được viết bằng ngôn ngữ PHP (để xử lý logic và tạo ra HTML) và sử dụng JavaScript (để tạo các chức năng tương tác trên trình duyệt)

- Mã nguồn của WordPress hoạt động cùng với máy chủ web (Apache) để nhận yêu cầu từ trình duyệt, kết nối với cơ sở dữ liệu MySQL để lấy/lưu trữ nội dung, và sau đó gửi trang web đã hoàn chỉnh về lại trình duyệt của người dùng

- WordPress là mã nguồn mở, cho phép cộng đồng phát triển, kiểm tra và cải tiến liên tục

3.2. Làm sao để lấy mã nguồn WordPress về máy cục bộ

Để lấy mã nguồn WordPress từ Internet về máy cụ bộ, sau đó cài đặt WordPress lên XAMPP, bạn thực hiện các bước sau:

- Truy cập trang web chính thức của WordPress: https://wordpress.org/download/

- Nhấp vào nút "Download WordPress [phiên bản mới nhất]" để tải về một tập tin nén (thường là .zip).

- Mở thư mục cài đặt XAMPP của bạn (ví dụ: C:\xampp)

- Truy cập vào thư mục htdocs, đây là thư mục gốc mà web server Apache sử dụng để lưu trữ các website

- Trong thư mục htdocs, tạo một thư mục mới cho dự án WordPress của bạn, ví dụ: congtyteo

- Giải nén tập tin .zip WordPress vừa tải về

- Chép tất cả các tập tin và thư mục con bên trong thư mục wordpress đã giải nén vào thư mục dự án bạn vừa tạo trong htdocs (ví dụ: C:\xampp\htdocs\congtyteo)


3.3. Cấu hình để chạy website WordPress trên XAMPP

Ở bước trước, chúng ta đã tạo được website dựa trên mã nguồn của WordPress. Có một vài nhận xét:

- Thư mục website hiện tại hoàn toàn là mã nguồn của WordPress, chúng ta chưa chỉnh sửa, hoặc thêm bất kỳ đoạn mã nguồn nào vào trong đó

- Website của chúng ta sẽ tạo ra luôn phải chứa toàn bộ mã nguồn của WordPress, do vậy sẽ có dung lượng lớn

- Chúng ta sẽ dựa hoàn toàn vào cơ chế làm việc, cách thức tạo trang web, cách quản lý người dùng của WordPress để tạo ra website mới

Trong phần này, chúng ta sẽ cấu hình để chạy được chương trình WordPress trên hệ thống XAMPP.

Việc cấu hình chủ yếu bao gồm hai bước quan trọng: [Bước 1] tạo cơ sở dữ liệu và [Bước 2] chạy trình cài đặt WordPress.

Bước 1: Tạo cơ sở dữ liệu (database)

- Đảm bảo Apache và MySQL đang chạy trong XAMPP Control Panel

- Mở trình duyệt và truy cập địa chỉ: http://localhost/phpmyadmin/, để mở phần mềm quản lý cơ sở dữ liệu phpmyadmin. Bạn để ý cái cổng đang mở trên localhost, ví dụ ở bước trước bạn đã cấu hình Apache chạy trên cổng 8080 thì đường dẫn truy cập vào phpmyadmin sẽ là http://localhost:8080/phpmyadmin/

Giao diện của phpmyadmin:


Trong giao diện của phpmyadmin,

- Tạo database mới: Nhấp vào tab "New" hoặc nút "Databases"

- Nhập tên cho cơ sở dữ liệu của bạn (ví dụ: wp_congtyteo). Lưu ý: Bạn nên chọn mã hóa utf8_general_ci để đảm bảo hỗ trợ tốt tiếng Việt

- Nhấn "Create" để tạo cơ sở dữ liệu. Cơ sở dữ liệu vừa tạo sẽ xuất hiện ở khung bên trái của giao diện phpmyadmin.

Bước 2: Chạy chương trình WordPress

- Để tạo được các trang web theo ý bạn, trước tiên, chúng ta cần phải chạy chương trình WordPress, từ chương trình WordPress, chúng ta sẽ tạo ra các trang web.

- Truy cập dự án (ví dụ congtyteo) thông qua trình duyệt: Mở trình duyệt và truy cập vào địa chỉ thư mục dự án bạn đã tạo: http://localhost/tên_thư_mục_của_bạn/ (ví dụ: http://localhost/congtyteo/). Bạn để ý dấu “/” ở cuối của đường dẫn, nó có nghĩa là truy cập vào thư mục gốc của dự án congtyteo, khi đó Apache sẽ chạy và thực thi tập tin index.php và trả về cho trình duyệt.

- Thiết lập kết nối: WordPress sẽ yêu cầu bạn cung cấp thông tin kết nối tới cơ sở dữ liệu:

  + Tên cơ sở dữ liệu (Database Name): Tên bạn vừa tạo ở trên (ví dụ: wp_congtyteo)

  + Tên người dùng (Username): Mặc định khi dùng XAMPP là root

  + Mật khẩu (Password): Mặc định khi dùng XAMPP là để trống

  + Máy chủ cơ sở dữ liệu (Database Host): Thường là localhost

- Bấm nút Submit

- Hoàn tất cài đặt: Sau khi kết nối thành công, WordPress sẽ yêu cầu bạn thiết lập các thông tin cuối cùng:

  + Tiêu đề trang web (Site Title). Ví dụ: Trang web của công ty tèo

  + Tên người dùng (Username, ví dụ teonv) và Mật khẩu quản trị (nên chọn một mật khẩu mạnh). Mật khẩu phải có chiều dài trên 6 ký tự, gồm số, chữ thường, chữ hoa, ký tự đặc biệt, ví dụ: P@ssword1

  + Nhập email của bạn

- Nhấn "Install WordPress"


- Vậy là bạn đã chạy được chương trình WordPress trên máy cục bộ, từ chương trình WordPress sẽ tạo ra website của chính bạn


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

Bài tập 3a. Tải mã nguồn WordPress về máy tính của bạn. Tạo thư mục dự án, cấu hình và chạy được chương trình WordPress. Ví dụ: khi truy cập http://localhost:8080/congtyteo/, sẽ xuất hiện trang quản trị của WordPress (http://localhost:8080/congtyteo/wp-admin/).

Câu hỏi 1. Phát biểu về mã nguồn của WordPress, nội dung nào không đúng?

A. Bạn không thể xem được mã nguồn của WordPress

B. Thư mục dự án (website) sẽ chứa toàn bộ mã nguồn của WordPress 

C. Chương trình WordPress sẽ tự động tạo các bảng dữ liệu cho website của bạn

D. Bạn sẽ tạo website của bạn dựa trên chương trình WordPress

Câu 2. Một website tạo bằng WordPress có một số đặc điểm sau, phát biểu nào không đúng?

A. Dễ làm, không cần biết lập trình vẫn làm được

B. Rất nhiều giao diện đẹp, có sẵn để bạn lựa chọn

C. Thư mục dự án rất gọn, nhẹ

D. Website sẽ phải đối mặt với vấn đề bảo mật, do phải đối diện với nhiều cuộc tấn công mạng

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