Tìm hiểu cách vận hành của mã nguồn WordPress [NEW]



Trước khi chúng tôi bắt đầu làm việc với cách tiếp cận giống như WordPress nâng cao WordPress Core và sử dụng nó, ít nhất chúng ta nên hiểu rõ về cách mã nguồn WordPress thực hiện các công việc như xử lý dữ liệu, nhận yêu cầu truy cập (khi ai đó truy cập hoặc làm gì đó trên trang web được gọi là 1 request). Hiểu những khái niệm cơ bản này sẽ rất hữu ích để bạn biết WordPress thực sự là gì và chúng ta có thể làm gì trong WordPress.

Nhưng bây giờ, chúng ta nên tự hỏi rằng mã nguồn WordPress có thể làm được những gì? Trong nháy mắt, chúng tôi thấy nó có thể làm được:

  • Blog cá nhân.
  • Trang tin tức, tạp chí.
  • Trang bán hàng.
  • Trang web bất động sản.
  • Trang rao vặt.
  • Danh mục đầu tư điện tử.
  • ….

Nhưng chúng ta có cảm thấy các loại website trên đều có một điểm chung là lưu trữ thông tin đầu vào, quản lý nội dung và cho phép khách xem nội dung? Chúng tôi gọi nó là CMS – Content Management System (hệ thống quản lý nội dung). Và WordPress là một mã nguồn PHP kiểu CMS.

Dữ liệu hoạt động như thế nào?

Trong mã nguồn WordPress, nó đã được lập trình nhiều tính năng giúp bản thân nó tương tác với cơ sở dữ liệu như MySQL giúp người dùng lưu trữ dữ liệu mềm trên website. Tất cả dữ liệu mềm được lưu trữ trong cơ sở dữ liệu sẽ bao gồm nội dung văn bản được nhập vào trang web, cài đặt (vì cài đặt sẽ được lưu dưới dạng dữ liệu) và một số dữ liệu linh tinh khác. khác.

Nếu bạn có quyền truy cập vào cơ sở dữ liệu thông qua phpMyAdmin hoặc các ứng dụng tương tự, bạn sẽ thấy rằng WordPress có nhiều bảng dữ liệu để chứa dữ liệu cần lưu.

Tìm hiểu cách vận hành của mã nguồn WordPress [NEW]

Sau đó, các tính năng trong mã nguồn sẽ tương tác với các bảng dữ liệu đó và xuất chúng ra trình duyệt để hiển thị dưới dạng HTML thông qua các tệp đã được tạo khuôn mẫu trong theme (chúng tôi gọi là mẫu). Những điều này bây giờ bạn có thể không hiểu nhưng dần dần bạn sẽ hiểu nó trong bộ sách này.

xem thêm: Cấu trúc và tối ưu hóa cơ sở dữ liệu WordPress

WordPress làm gì mỗi khi ai đó truy cập trang web?

Khi một người truy cập trang web, WordPress sẽ tự động xử lý quá trình sau:

Bước 1 – Khởi chạy mã nguồn

Tập tin index.php trong mã nguồn (không phải của chủ đề hoặc plugin) được tải, sau đó nó sẽ truy xuất các tệp cốt lõi khác như wp-config.php vốn để kết nối với cơ sở dữ liệu, wp-settings.php…. Bạn có thể mở tệp index.php để xem và theo dõi các tệp nhúng để biết quá trình nó tải theo thứ tự của các tệp.

Trong bước này, WordPress sẽ kết nối với cơ sở dữ liệu được thiết lập trong wp-config.phpsau đó sẽ tiến hành tải các tính năng trong mã nguồn như /wp-include/functions.php, /wp-include/options.php… để tải trước các chức năng cần thiết để có thể nhận dữ liệu.

Và cũng ở bước này, tất cả dữ liệu được lưu vào bảng wp_options có giá trị trong cột autoload được true sẽ được kéo ra, cho dù cài đặt đó có được sử dụng hay không. Mục đích của bước này là tạo sẵn các tùy chọn và plugin cho website để hỗ trợ các bước sau, đặc biệt là bước tải plugin để nó hoạt động chính xác. Đó là lý do tại sao trong bài viết tối ưu bảng wp_options, tôi khuyên bạn nên xóa những dòng dữ liệu không sử dụng trong bảng này để giảm thời gian tải.

Bước 2 – Kích hoạt plugin

Các plugin mà bạn đang kích hoạt trong trang web của mình sẽ được tải ngay sau khi mã nguồn WordPress kết thúc quá trình khởi động. Vì các tính năng trong WordPress Core được sử dụng trong plugin thường sẽ được gắn vào hook init (bạn tạm hiểu nó là điểm neo để kích hoạt một kịch bản nào đó) nên nó sẽ tải ngay khi WordPress khởi động.

Bước 3 – Thực thi tệp functions.php trong chủ đề

Lúc này, WordPress sẽ tiến hành thăm dò file functions.php trong theme đang hoạt động để tải các tính năng mà người tạo theme đã khai báo ở đó. Vậy làm thế nào để WordPress có thể hiểu được website đang sử dụng theme nào? Đó là ở bước 1, nó được kết nối với cơ sở dữ liệu và dựa trên khóa current_theme trong cột option_name trong bảng wp_options.

WordPress xác định nhiều hiện tại hơn thông qua cơ sở dữ liệu

WordPress xác định nhiều hiện tại hơn thông qua cơ sở dữ liệu

Bước 4 – Phân tích truy vấn và khởi tạo truy vấn

Đây là bước quan trọng để website của bạn có thể hiển thị nội dung ra bên ngoài, vì nội dung sẽ được trả về sau khi các truy vấn được gửi đến cơ sở dữ liệu. Nếu bạn muốn biết nó phân tích như thế nào thì hãy xem tại đây.

Truy vấn có nghĩa là một lệnh được gửi đến cơ sở dữ liệu để lấy thông tin mà truy vấn cần xem. Truy vấn ở đây là truy vấn SQL được gửi đến MySQL Server.

WordPress sẽ chạy chức năng đầu tiên wp() đặt trong /wp-include/functions.php vốn để gọi phương thức $wp->main() cho các mục đích thiết lập truy vấn. Môn học $wp được tạo bởi lớp WP trong /wp-include/class-wp.php.


/**
 * Set up the WordPress query.
 *
 * @since 2.0.0
 *
 * @param string|array $query_vars Default WP_Query arguments.
 */
function wp( $query_vars = ” ) {
    global $wp, $wp_query, $wp_the_query;
    $wp->main( $query_vars );

    if ( !isset($wp_the_query) )
        $wp_the_query = $wp_query;
}

Tại thời điểm này, phương pháp $wp->parse_request() sẽ được bắt đầu với mục đích phân tích truy vấn dựa trên đường dẫn của trang web. Vì bạn biết rằng WordPress sẽ tự động tạo truy vấn dựa trên đường dẫn, ví dụ: khi chúng ta nhập http://domain.com/?p=123 thì WordPress sẽ gửi một câu truy vấn đến cơ sở dữ liệu để lấy dữ liệu của bài đăng có số ID 123.

Sau khi truy vấn được phân tích cú pháp, điều tiếp theo WordPress sẽ làm là thiết lập các hàm có điều kiện thông qua. phương pháp $wp_query->parse_query(). Sau đó, nó sẽ chuyển đổi các truy vấn được tạo thành các lệnh SQL được gửi đến MySQL để truy xuất dữ liệu bài viết bằng cách sử dụng $wp_query->get_posts(). Nếu cơ sở dữ liệu có dữ liệu, các bài báo sẽ được truy xuất sau khi gửi truy vấn và nó sẽ được lưu vào đối tượng $wp_query để nó sử dụng trong các vòng lặp để hiển thị các bài viết.

Trong quá trình gửi truy vấn này, nếu không tìm thấy dữ liệu nào, nó sẽ phân tích và hiển thị lỗi 404.

Và cuối cùng nó có dữ liệu, sau đó nó sẽ đặt biến $post để sử dụng trong vòng lặp. Biến đổi $post là đối tượng chứa dữ liệu của bài viết thông qua các thuộc tính. Trong phần này, chúng ta sẽ tìm hiểu sâu hơn về các truy vấn và vòng lặp.

Bước 5 – Thực thi các tệp mẫu trong chủ đề

Sau khi có dữ liệu bài viết và dữ liệu liên quan mà nó đã làm ở bước 4, nó sẽ tiến hành xử lý các tệp mẫu của chủ đề thông qua cấu trúc mẫu. Sau đó nội dung và trang chủ của website sẽ được hiển thị dựa trên các thẻ mẫu dưới dạng HTML. Chúng ta sẽ tìm hiểu thêm về điều này trong bài tiếp theo.

Chúng ta có thể làm gì với mã nguồn WordPress?

Một câu hỏi đặt ra, chúng ta có thể làm gì để can thiệp vào mã nguồn WordPress để điều khiển nó hoạt động theo ý muốn hay nói cách khác là tạo thêm tính năng và thay đổi giao diện hiển thị.

Không phải tự nhiên mà tôi trình bày chi tiết quy trình xử lý dữ liệu WordPress ở trên, nhưng sẽ giúp bạn dễ hiểu hơn ở phần này.

Đầu tiên, chúng ta có thể can thiệp vào các tính năng của WordPress và tạo lại nó đã được WordPress xử lý ở bước 1 như trên. Sở dĩ chúng ta có thể làm được điều đó là vì mã nguồn của WordPress được viết theo cách mà chúng ta có thể gián tiếp can thiệp vào nó và có thể tái tạo nó (thông qua các lớp). Và các tính năng do chúng tôi tự tạo ra từ việc giả mạo mã nguồn có thể được khai báo như một plugin và nó sẽ được sử dụng ngay khi WordPress khởi động các chức năng cần thiết.

Thứ hai, chúng ta có thể can thiệp vào lớp học WP_Query để tạo truy vấn của riêng bạn để lấy bất kỳ dữ liệu nào trong cơ sở dữ liệu (nhiều truy vấn có thể được sử dụng bởi một hàm, như get_post_meta () chẳng hạn). Chúng tôi áp dụng WP_Query nhất về việc lấy dữ liệu của các bài báo (bao gồm post, page, file đính kèm, …).

Thứ ba, chúng ta có thể tạo chủ đề, sau đó tùy chỉnh thủ công các tệp mẫu trong đó để nội dung WordPress hiển thị theo ý của chúng tôi. Vì sau khi WordPress gửi câu truy vấn để lấy dữ liệu thì việc hiển thị là do các template quyết định, và trong template sẽ là mã PHP kết hợp với HTML / CSS để hiển thị trên website.

Đó là những điều chúng tôi có thể làm.

Rồi sao?

Câu hỏi hay, chúng ta đã biết cách WordPress tải khi có lưu lượng truy cập, sau đó các hàm được thực thi tuần tự và biết chúng ta có thể làm gì. Về cách làm, chúng ta sẽ tìm hiểu ở phần sau của loạt bài Học WordPress nâng cao này.

3,4 / 5 – (5 phiếu bầu)

Tiếp tục đọc trong bộ truyện