Chúng tôi đã đề cập đến rất nhiều chủ đề về phát triển phần mềm với WordPress và trong các phiên này, bạn chắc chắn đã nghe về các bộ lọc và hành động.

Đây là một phần thiết yếu trong kiến ​​trúc của WordPress. Và bạn có cơ hội để tạo ra những cái mới để đáp ứng nhu cầu của bạn.

Nói một cách dễ hiểu biến cố Là một kỹ thuật cho phép bạn lắng nghe sự xuất hiện của một sự kiện và hành động phù hợp với sự kiện được đề cập hoặc trên một khía cạnh khác. Phản ứng của bạn, những gì bạn đang viết, là cách bạn có thể tạo chức năng bạn muốn, để mở rộng chức năng của WordPress.

Đây là một ví dụ rất đơn giản, đăng một bài đăng trên WordPress là một sự kiện ví dụ (Publish_post) mà sửa đổi một trạng thái.

Đây là nền tảng cho khả năng mở rộng của WordPress, giúp nó trở thành một trong những hệ sinh thái CMS phong phú nhất, phát triển mạnh mẽ với hàng nghìn chủ đề và plugin giàu tính năng như nhau.

Có một lý do cơ bản khác tại sao việc sử dụng dấu ngoặc vuông lại quan trọng như vậy. Bằng cách sử dụng dấu ngoặc vuông, bạn có thể mở rộng và xây dựng trên WordPress mà không cần sửa đổi mã nguồn của cái sau.

Trong thực tế, hãy để tôi nói lại câu nói đó.

Nếu ai đó đang thuê bạn (hoặc bạn đang tuyển dụng) cho một công việc trên WordPress đề nghị bạn thay đổi mã nguồn WordPress, hãy dừng mọi thứ tại chỗ.

Bất cứ ai sẵn sàng phá vỡ khả năng mở rộng của trang web WordPress của bạn đều không biết họ đang nói về cái gì. Nếu những người này quan tâm đến an ninh, họ thậm chí sẽ không xem xét điều đó.

Chúng tôi đã nói trước đó. Bản cập nhật của WordPress (bao gồm các chủ đề và plugin của anh ấy) đến phiên bản mới nhất có sẵn là một trong những nền tảng của bảo mật WordPress. Các nhà phát triển sửa đổi mã nguồn trang web của bạn sẽ rời khỏi nó bằng cách chắc chắn đã phá vỡ chu kỳ cập nhật của WordPress (nếu họ không thực hiện sửa đổi của họ sẽ bị ghi đè ở lần cập nhật tiếp theo).

Mặt khác, nếu bạn sử dụng hook và tất cả các tùy chọn khả năng mở rộng khác mà WordPress cung cấp cho bạn, thì khả năng mở rộng của blog WordPress sẽ yên tâm.

chia sẻ và lọc wordpress

Móc nối, Hành động hay Bộ lọc? Nó có nghĩa là gì ?

Hooks về cơ bản là các sự kiện xảy ra trong khi chạy bất kỳ chức năng, chủ đề hoặc plugin nào của WordPress.

Nhưng tại sao chúng thực sự được gọi là móc?

Các nhà phát triển đang tìm cách mở rộng hoặc triển khai các tính năng cụ thể có thể "treo trênĐến các sự kiện ngay khi chúng được kích hoạt.

Khi WordPress trải qua các giai đoạn thực thi, nó sẽ kiểm tra xem có plugin (hoặc chủ đề) đã ghi lại một chức năng để thực thi tại thời điểm đó, nếu một chức năng được tìm thấy, chúng sẽ được thực hiện tại thời điểm này.

WordPress codex, như là một phần của API WordPress, giải thích đúng Hooks, Actions và Filters, Tôi vẫn sẽ cung cấp một số chi tiết hữu ích:

Có hai loại ngoặc chính:

  • Hành động (hoặc thậm chí là "action Hooks")
  • Bộ lọc (hoặc thậm chí "Móc lọc")

Trong thực tế, những thứ này khá giống nhau về khả năng đạt được, nhưng có một số khác biệt tinh tế.

Sự khác biệt giữa Hành động và Bộ lọc

Hãy bắt đầu với những điểm tương đồng trước khi nói về sự khác biệt:

  • Hành động và bộ lọc nhận được données thông qua một số tham số.
  • Các hành động và bộ lọc cũng vậy, hầu hết thời gian có thể làm điều tương tự (nếu bạn xem mã nguồn của WordPress, bạn sẽ thấy rằng các chức năng được triển khai cho các hành động chỉ là phong bì chức năng lọc).

Tuy nhiên, một sự khác biệt thiết yếu giữa hai loại WordPress hooks.

Bộ lọc là cần thiết để trả về một giá trị, hành động không làm điều đó.

Về bản chất, với bộ lọc, chức năng " nối Nhận một giá trị cụ thể làm tham số, nó thực hiện công việc của nó và sau đó trả về một phiên bản sửa đổi (hoặc không) của giá trị này.

Một hành động không cần trả về một giá trị.

Nói một cách thực tế hơn, với một bộ lọc, bạn thường sẽ làm việc với nội dung, làm cho sửa đổi”, Sau đó trả lại nội dung này. Ví dụ, như chúng ta sẽ thấy bên dưới các bộ lọc " title_save_pre Đó là một bộ lọc trên tiêu đề của một bài viết, trong khi Content_save_pre Đó là một bộ lọc về nội dung của một bài viết.

Mặt khác, "Hành động" thực hiện điều gì đó (ai có thể xử lý données hoặc chỉ sử dụng những thứ này données) khi một sự kiện xảy ra. Các hành động Publish_post "Kích hoạt khi một bài báo được xuất bản.

Khi nào và làm thế nào để sử dụng một hành động

Bạn sẽ sử dụng một hành động khi:

  • Bạn muốn tiêm mã HTML hoặc nội dung khác vào bộ đệm.
  • Sửa đổi một hoặc nhiều biến toàn cầu
  • Thay đổi cài đặt được truyền cho chức năng của bạn

Dưới đây là cách thêm hành động:

add_action ($ hook, $ function_to_add, $ priority, $ accepted_args);

trong đó "$ hook" sẽ là hành động bạn muốn hook, "$ function_to_add" là hàm sẽ được thực thi khi hook này được kích hoạt.

Khi nào và cách sử dụng Bộ lọc

Bạn có thể sử dụng bộ lọc khi bạn cần thực hiện tất cả các thao tác trên, nhưng cũng muốn thay đổi cài đặt sẽ được WordPress sử dụng.

Trong thực tế, nó không chỉ là một nhu cầu, mà là một yêu cầu. Bạn phải trả về một giá trị cho tham số nếu bạn đang sử dụng bộ lọc.

Cách thêm bộ lọc khá giống với cách thêm bộ lọc:

add_filter ($ móc, $ function_to_add, ưu tiên $, $ accepted_args);

Một lần nữa, "$ hook" sẽ là bộ lọc để sử dụng và "$ function_to_add" là hàm bạn nên viết. Đọc WordPress tài liệu trên khung để biết thêm thông tin.

Xóa bộ lọc hoặc hành động

Giống như bạn thêm Hành động và Bộ lọc, bạn cũng có thể xóa chúng. Điều này ngược lại với việc thêm Hành động và Bộ lọc, nhưng cú pháp rất giống nhau:

remove_action ($ hook, $ function_to_remove, $ priority); remove_filter ($ hook, $ function_to_remove, $ priority);

Trong đó "$ priority" là một đối số tùy chọn.

Trong cả "add_filter" và "remove_filter", "$ prioirity" xác định thứ tự mà các hook kích hoạt. Nếu có một số móc "xích", chúng sẽ được thực hiện lần lượt.

Ví dụ đơn giản: Cách thêm mã theo dõi Google Analytics vào WordPress

Hãy nhớ rằng chúng tôi đã hướng dẫn bạn cách tạo Plugin WordPress. Bây giờ tất cả những gì bạn phải làm là thêm mã sau vào Plugin WordPress.

// Hàm Google Universal Analytics google_analytics () {?>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
  ga('create', 'GA-XXXXXX-XX', 'auto');
  ga('send', 'pageview');

Đó là nó cho hướng dẫn này. Tôi hy vọng bạn sẽ biết cách phân biệt giữa các bộ lọc và hành động trên WordPress. Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại hỏi họ.