Khi xem qua các đoạn / hướng dẫn / plugin WordPress tôi thường thấy add_action()
và add_filter()
được đặt trước khi hàm được khai báo:
add_action( 'publish_post', 'email_friends' );
function email_friends( $post_ID ) {
$friends = 'bob@example.org, susie@example.org';
mail( $friends, "sally's blog updated" , 'I just put something on my blog: http://blog.example.com' );
return $post_ID;
}
Từ quan điểm logic, điều này không có ý nghĩa với tôi. Tại sao bạn sẽ đặt hàm sau khi nó được gọi trong mã của bạn? Đây thường là cách tôi sẽ xử lý tình huống tương tự:
function email_friends( $post_ID ) {
$friends = 'bob@example.org, susie@example.org';
mail( $friends, "sally's blog updated" , 'I just put something on my blog: http://blog.example.com' );
return $post_ID;
}
add_action( 'publish_post', 'email_friends' );
Tôi biết cả hai kịch bản đều hoạt động, nhưng có một lợi thế cụ thể nào cho cái này hay cái kia không? Khoảng 90% thời gian tôi thấy kịch bản đầu tiên được sử dụng, do đó điều đó khiến tôi tin rằng có một lợi ích cho việc này theo một cách nào đó.