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 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 độngHà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ọcMặ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ăngTrong 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]; }
0Như 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