Sự khác biệt giữa Add_action và Add_filter trong WordPress là gì?

Nếu bạn là một nhà phát triển WordPress lâu năm chắc chắn bạn đã gặp hai công cụ này (đôi khi tôi nói là không thể thiếu)

Nếu bạn chỉ có con đường của riêng mình với WordPress, có lẽ bạn cũng phải đối phó với một hành động hoặc bộ lọc và có thể chúng đã khiến bạn gặp rắc rối

Trong bài đăng này, tôi sẽ cố gắng giải thích rõ ràng nhất có thể hai công cụ này là gì và sự khác biệt giữa chúng là gì

Hành động và bộ lọc trong WordPress là gì?

Hành động và Bộ lọc là hai cái gọi là "móc nối"

Thực tế, các hook hành động và bộ lọc cho phép chúng tôi sửa đổi hoặc thêm chức năng vào lõi của WordPress, nhưng không trực tiếp sửa đổi nó

Ví dụ: giả sử chúng tôi muốn thay đổi hành vi của WordPress khi xuất bản một bài đăng. Nếu không có Móc, chúng tôi sẽ phải truy cập trực tiếp vào lõi của WordPress để tìm các chức năng điều chỉnh sự kiện này và sửa đổi chúng theo ý muốn

Không được đề xuất vì hai lý do chính

  • Bảo vệ. bằng cách sửa đổi trực tiếp các tệp duy trì WordPress, chúng tôi chắc chắn sẽ ảnh hưởng đến tính bảo mật của toàn bộ hệ thống, khiến nó không ổn định và không an toàn
  • cập nhật. WordPress được cập nhật thường xuyên. Nếu chúng tôi sửa đổi các tệp cốt lõi, sau khi cập nhật, các thay đổi của chúng tôi sẽ bị ghi đè bởi chính bản cập nhật

Vì những lý do này, bản thân WordPress cung cấp cho chúng tôi khả năng sửa đổi và/hoặc thêm các chức năng vào lõi mà không cần nhúng tay vào. Và điều này có thể thực hiện được thông qua hành động và bộ lọc Móc

Móc thường được thêm vào tệp functions.php, nhưng cũng có thể được sử dụng trong Plugin chẳng hạn

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

Sự khác biệt là hành động cho phép chúng tôi thêm chức năng trong khi lọc để chỉnh sửa các biến

Hãy đi vào chi tiết và hãy đưa ra một số ví dụ

Hoạt động

Hành động là móc bạn phải sử dụng nếu bạn muốn chạy một số mã tại một thời điểm nhất định

Giả sử bạn chỉ muốn gửi email mỗi khi bài đăng được xuất bản

Những gì bạn cần làm là viết một chức năng xử lý việc gửi email và yêu cầu WordPress thực thi chức năng đó tại thời điểm đăng và đó là lúc hành động hook có ích

add_action('publish_post','send_email_new_post'); function send_email_new_post() { $to = '[email protected]'; $subject = 'New Post!'; $message = 'A post was published!'; mail($to, $subject, $message); }

add_action cho phép chúng tôi nói với WordPress những gì chúng tôi muốn làm, trong trường hợp này chỉ cần sử dụng hook action. publish_post là khi nào, đó là khi chúng tôi muốn WordPress thực thi mã của chúng tôi, trong khi send_email_new_post là tên chức năng của chúng tôi để gửi thư

Chúng ta có thể mở rộng thêm một chút add_action, thêm mức độ ưu tiên mà hàm phải có và số lượng đối số bạn có thể chuyển đến hàm

Mức độ ưu tiên được biểu thị bằng một số, số càng nhỏ thì hàm của chúng ta có mức độ ưu tiên càng cao. Giá trị mặc định là 10

Hãy mở rộng chức năng của chúng tôi một chút để gửi email để chúng tôi có thể truyền đối số cho chức năng
Ví dụ, hãy thêm tiêu đề của bài đăng đã xuất bản làm chủ đề của email

add_action('publish_post','send_email_new_post',5,1); function send_email_new_post($post_ID) { $to = '[email protected]'; $subject = get_post_field('post_title',$post_ID); $message = 'A post was published!'; mail($to, $subject, $message); }
Bộ lọc

Mặt khác, bộ lọc cho phép chúng tôi sửa đổi các biến

Giả sử bạn muốn sửa đổi nội dung bài đăng của mình, thêm vào cuối văn bản một cái gì đó như “do tôi viết. ”
(tại sao bạn nên bao giờ, nhưng nó chỉ là một ví dụ. Đ)

Trong trường hợp này, chúng ta không phải thực hiện một chức năng, nhưng chúng ta phải sửa đổi một biến, trong trường hợp này là nội dung của bài viết

Đó là lý do tại sao hook filter giúp chúng ta. Còn về hành động, hãy xem thực tế

add_filter('the_content','add_my_string_to_content'); function 'add_my_string_to_content($content) { $content .= 'written by me!'; return $content; }

Như bạn có thể thấy, không giống như add_action, với

add_action('publish_post','send_email_new_post',5,1); function send_email_new_post($post_ID) { $to = '[email protected]'; $subject = get_post_field('post_title',$post_ID); $message = 'A post was published!'; mail($to, $subject, $message); }
0, chúng tôi cho WordPress biết những gì cần thay đổi và không phải khi nào thực hiện một chức năng

Trong trường hợp này, chúng tôi yêu cầu WordPress sửa đổi nội dung của bài đăng bằng cách thêm chuỗi của chúng tôi

Giống như add_action, bạn có thể thêm mức độ ưu tiên và số lượng đối số cho

add_action('publish_post','send_email_new_post',5,1); function send_email_new_post($post_ID) { $to = '[email protected]'; $subject = get_post_field('post_title',$post_ID); $message = 'A post was published!'; mail($to, $subject, $message); }
0

Như bạn có thể thấy, điều này rất đơn giản. Tôi hy vọng rằng mọi thứ rõ ràng hơn với bạn và bạn có thể sử dụng các công cụ này tốt hơn và có ý thức hơn trong các dự án WordPress của mình

Sự khác biệt giữa thêm hành động và thêm bộ lọc là gì?

Hành động thực hiện điều gì đó tại một điểm cụ thể, bộ lọc sửa đổi giá trị và trả lại giá trị đó . Ví dụ: với một hành động, bạn có thể thêm thông tin vào bài viết trước khi nó được lưu. Với bộ lọc, bạn có thể thay đổi định dạng ngày trên mỗi bài đăng trên blog. Với một hành động, bạn có thể đặt quảng cáo trên mọi trang trên trang web của mình.

Sự khác biệt giữa thêm hành động và thêm bộ lọc trong WordPress là gì?

Hai loại móc nối WordPress. Hành động và Bộ lọc. WordPress bao gồm hai loại móc được gọi là Hành động và Bộ lọc. Hành động cho phép bạn thực hiện điều gì đó tại một số điểm được xác định trước trong thời gian chạy WordPress, trong khi Bộ lọc cho phép bạn sửa đổi bất kỳ dữ liệu nào do WordPress xử lý và trả lại dữ liệu đó .

Sự khác biệt giữa Do_action và Apply_filters là gì?

apply_filters() và do_action() có một điểm khác biệt đơn giản. apply_filters() là cách bạn kết nối các hàm bộ lọc. do_action() là cách bạn kết nối các hàm hành động .

Sự khác biệt giữa bộ lọc WP và hành động là gì?

Hành động WordPress có nghĩa là Thực thi để phản hồi lại Sự kiện WordPress và không yêu cầu bắt buộc bất kỳ loại dữ liệu nào. Trong khi Bộ lọc Hook vẫn cần dữ liệu . Các hành động có thể có bất kỳ chức năng nào và Bộ lọc có thể tồn tại để sửa đổi dữ liệu.