Logo của Wordpress - giản thể

Hệ thống filter và hook của WordPress là rất mạnh

Bữa trước ông bạn tôi và tôi cùng nhau hợp lực chiến một dự án code tay, họ yêu cầu code tay nên đành làm theo dạng code tay, trước kia chúng tôi có viết một CMS độc lập với tất cả nhưng sau đó chúng tôi cũng đã bàn kế nhúng toàn bộ hệ thống filter của WordPress sang, vậy là trong nháy mắt mọi thứ đã vào quỹ đạo, lại còn tiết kiệm thời gian, và quan trọng hơn cả là cải tiến được CMS mình đã từng viết ra mới sướng chứ !

Hệ thống vẫn thiết kế theo quy tắc Stored Procedure cho nó nhanh, plugin độc lập và không có module như Joomla, đặc biệt là nhờ vào hệ thống filter của WordPress mà chúng tôi khỏi phải nghĩ kế làm các hook để sau phát triển.

Trong cách gọi và cách hook của WordPress rất hay mà lại đơn giản, tôi lấy ví dụ:

  • Muốn apply một hook ta chỉ cần gọi “apply_filters(‘the_content’, $text, $args);
  • Muốn hook vào dùng add_filter(‘the_content’, ‘function’);

Và chỉ cần tới có vậy, cả hệ thống đã chạy trơn tru với khung sườn viết sẵn, mở rộng bằng các plugin, thông thường để tiết kiệm thời gian, các plugin được include tự động vào hệ thống, cứ quăng vào folder đó là nhận, giống y chang trường hợp dùng mu-plugin trong WordPress vậy.

Hệ thống hook của WordPress có đôi chút khác biệt so với Drupal, trong khi Drupal gọi các hàm được định nghĩa thay cho việc nó phải hook vào nơi cần hook, thì trong Drupal là cách đặt tên, ví dụ hàm hook_init … thì cứ khi hệ thống gọi tới init sẽ gọi các hàm nào là hook_init …

Đầu tiên chúng tôi cũng định nghiên cứu cái cách hook của Drupal, nhưng sau thấy nó bất cập một vài điểm, nhất là sắp xếp các thứ tự của các hook khi thực thi một lệnh nào đó, hoặc chúng tôi chưa nghiên cứu ra cách hook của Drupal nên đành thôi, dùng cái quen thuộc là WordPress cho lành lặn 😀

Thực sự tôi đánh giá cao WordPress ở điểm hook rất đơn giản và dễ sử dụng, nếu chúng ta hiểu rõ cơ chế hoạt động thì không một điều gì ở WordPress làm khó chúng ta, nhân tiện đây tôi xin lấy ví dụ:

Để chỉnh lại tựa đề của một bài viết:

add_filter('the_title', 'function_to_hook');
function function_to_hook( $text ) {
return "Tựa đề: ". $text;
}

Chúc các bạn thành công !

TÁC GIẢ:

Tôi là Jam, thâm niên 7 năm thiết kế website và làm SEO. Hãy theo dõi blog của tôi để nhận được nhiều chia sẻ thú vị xung quanh chủ đề công nghệ.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *