Những điều cần làm khi lập trình WordPress

WordPress hiện nay đang được sử dụng rất phổ biến, ngày càng có nhiều người quan tâm đến mã nguồn mở này. Trong tương lai, WordPress có thể sẽ được sử dụng như là mã nguồn chính để phát triển website. Bài viết này mình sẽ thảo luận cùng các bạn những điều mà người lập trình cần làm khi phát triển website với WordPress.

Lập trình WordPress

WordPress được sử dụng nhiều trong khâu phát triển website bởi vì nó đơn giản, mã nguồn này hoàn toàn miễn phí. Ngoài ra, WordPress còn hỗ trợ các hook cho phép bạn thao tác trên plugin và giao diện một cách dễ dàng. Hiện tại kho giao diện và plugin của WordPress rất phong phú, hầu như trong bất kỳ nhu cầu nào bạn cũng có thể tìm kiếm ra được plugin bạn đang cần dùng.

Luôn bật debug khi lập trình WordPress

Debug là khâu quan trọng hàng đầu trong quá trình bạn viết code với WordPress, khi bạn lập trình ở chế độ debug thì bạn sẽ dễ dàng phát hiện ra lỗi, ngoài ra thì bạn cũng có thể kiểm tra khả năng tương thích code của bạn đối với WordPress và đối với code của các plugin cũng như giao diện khác.

Để bật chế độ debug thì bạn mở tập tin wp-config.php của WordPress lên, tập tin này nằm trong thư mục gốc của trang web. Bạn tìm tới đoạn code bên dưới:

define('WP_DEBUG', false);

Thay dòng code bên trên thành đoạn code như sau:

// Turns WordPress debugging on
define('WP_DEBUG', true);

// Tells WordPress to log everything to the /wp-content/debug.log file
define('WP_DEBUG_LOG', true);

// Doesn't force the PHP 'display_errors' variable to be on
define('WP_DEBUG_DISPLAY', false);

// Hides errors from being displayed on-screen
@ini_set('display_errors', 0);

Cái này mình đã từng viết bài hướng dẫn chạy debug cho WordPress trên hocwp.net trước đó, bạn vào link mình gửi để xem nội dung kỹ hơn nhé.

Kiểm tra lỗi debug

Sau khi bạn bật chế độ debug thì nếu có lỗi xảy ra, bạn sẽ thấy được tập tin /wp-content/debug.log nằm trong thư mục wp-content. Tập tin debug.log này sẽ chứa các thông báo lỗi trên toàn bộ trang web của bạn, nếu lỗi code do bạn viết ra thì hãy khắc phục cho đến khi không còn lỗi nữa mới được.

Để có thể gửi thông tin biến của bạn vào tập tin debug.log này, bạn dùng một hàm nho nhỏ như bên dưới:

function hocwp_debug_log($message) {
    if(WP_DEBUG === true) {
        if(is_array($message) || is_object($message)) {
            error_log(print_r($message, true));
        } else {
            error_log($message);
        }
    }
}

Trong hàm này, bạn có thể gửi giá trị là một chuỗi hoặc một mảng hoặc một đối tượng nào đó, hệ thống sẽ lưu nội dung bạn muốn xem vào tập tin debug.log, bạn chỉ cần mở tập tin này lên và xem kết quả.

Code theo chuẩn của WordPress

Dĩ nhiên, đối với mỗi cá nhân và mỗi nhóm lập trình thì đếu có những chuẩn riêng, bạn có những thói quen riêng trong khâu viết code của mình, nhưng hãy quan tâm tới một chút các chuẩn của WordPress.

Xem thêm: WordPress Coding Standards

Cái này rất cần thiết nếu như bạn muốn code một dự án lớn, nó sẽ dễ quản lý và nâng cấp hơn sau này. Bên cạnh đó, bạn nên tạo thành các lớp (class) cho riêng bạn hoặc đặt tên tiền tố (prefix) để không trùng với hàm của người khác viết.

Như bạn thấy trong cách đặt tên hàm và tên lớp, mình luôn dùng tiền tố hocwp_ cho tên hàm và dùng tiền tố HOCWP_ cho tên lớp. Cái này phòng trường hợp với cùng nội dung, các tác giả khác nhau đặt tên giống nhau thì trang web không hoạt động được.

Dùng hook trong quá trình viết code

Trong WordPress, bạn có 2 thứ để dùng đó là action và filter, với mỗi cái đều có chức năng riêng của nó. Bạn không nên nhảy vào edit code trong nhân của WordPress, cũng không nên edit code trong giao diện và plugin của tác giả khác viết.

  • Action: WordPress thực thi lệnh tại một thời điểm cụ thế nào đó khi có yêu cầu từ phía người dùng.
  • Filter: WordPress sử dụng bộ lọc để lọc kết quả trả về trước khi lưu vào cơ sở dữ liệu và trước khi xuất ra màn hình cho người dùng.

Số lượng các action và filter mà WordPress cung cấp là rất nhiều, do vậy trước khi bạn muốn làm một công việc nào thì hãy lên Google và tìm kiếm từ khóa của bạn kèm theo hậu tố là action hoặc filter, tùy thuộc vào cái bạn đang tìm kiếm.

Sử dụng include, include_once, require, require_once đúng cách

Chắc các bạn khi mới làm quen với code PHP đều đã biết qua cái này, công dụng của những hàm này là load tập tin vào trang web của bạn, trong khi include thường được dùng để load các tập tin chứa nội dung xuất ra màn hình, còn require dùng để load các tập tin chứa class hoặc các function sử dụng trên trang web.

  • include: load nội dung của một tập tin nhất định vào trang web của bạn, nếu tập tin không tìm thấy thì sẽ xuất hiện dòng chữ cảnh báo ra ngoài màn hình, và code vẫn tiếp tục chạy xuống phía bên dưới.
  • include_once: chức năng tương tự như include, như hàm này lại kiểm tra tập tin cần load đã được load trước đó hay chưa, nếu có rồi thì hệ thống không load nữa, mỗi tập tin khi dùng bằng hàm này chỉ được load một lần duy nhất.
  • require: với hàm này thì khi bạn load một tập tin nào đó, nếu tập tin đó không tồn tại thì hệ thống sẽ xuất ra thông báo lỗi và ngừng hoạt động tới đoạn này. Nó cũng giống như include nhưng thay vì bỏ qua lỗi mà chạy tiếp xuống dưới thì hàm require nếu gặp lỗi sẽ không chạy nữa.
  • require_once: công dụng của hàm này cũng tương tự như hàm require và chỉ load tập tin một lần duy nhất.

Nếu xét về khả năng chạy nhanh chậm thì hàm include là nhẹ nhất, nếu bạn cần load các tập tin xuất nội dung ra ngoài màn hình, bạn không quan tâm lắm là nó có hay không, nếu không có thì trang web vẫn hoạt động bình thường ngoại trừ không xuất hiện nội dung bạn cần tải thông qua hàm này thì bạn dùng include, nếu bạn muốn hệ thống kiểm tra chỉ load tập tin một lần duy nhất thì dùng thêm _once phía sau. Nếu bạn muốn load một tập tin bắt buộc phải có, không có tập tin này thì trang web không hoạt động được thì bạn dùng hàm require, nếu bạn cần kiểm tra tập tin đó đã tồn tại rồi, không cần load thêm nữa thì dùng thêm hậu tố _once.

Kết luận

Qua bài viết này mình muốn truyền tải đến các bạn một vài thông tin mà người lập trình cần phải nắm trong quá trình lập trình web với WordPress. Vẫn còn nhiều thứ khác nữa nhưng nội dung bài này là những phần cơ bản, nếu bạn muốn học WordPress nâng cao hơn thì cứ lên trang Codex của WordPress, kể cả trên diễn đàn hỗ trợ của WordPress nữa, tài liệu trên này có rất nhiều nhưng quan trọng hơn hết là bạn phải biết Tiếng Anh.

Nếu bạn còn có những thủ thuật nào hay thì hãy để lại bình luận trò chuyện cùng mọi người nhé. Code is poetry and happy coding.

Gửi bình luận của bạn

Gửi bình luận

Địa chỉ email của bạn sẽ được giữ bí mật. Những mục bắt buộc được đánh dấu *