Hook, Filter và Action trong WordPress

Khi mở các file trong WordPress như functions.php chúng ta sẽ thấy xuất hiện hàm add_filter()add_action(). Đã bao giờ bạn tự hỏi Hooks, FiltersActions là cái gì chưa? Đây là những hàm khiến cho chúng ta hơi bị khó hiểu. Nhưng bài viết này Quách Quỳnh sẽ giải thích rõ và tường tận về Hooks, Filters và Actions là gì.

Hooks là gì?

Khi chúng ta muốn sửa một cái gì đó trong Theme, Plugin cách tốt nhất là không nên đụng tới Core. Bởi trong trường hợp chúng ta cập nhật thì các đoạn mã mới sẽ ghi đè lên. Như vậy sẽ rất mất công chỉnh sửa. Một giải pháp tuyệt vời đó chính là sử dụng Hooks. Khi dùng Hooks các thay đổi sẽ ghi đè khi bạn cập nhật plugin đó.

Có 2 loại Hooks được WordPress hỗ trợ:

  • Filter: để thay đổi giá trị của một biến đã tồn tại bằng cách ghi đè nội dung lên
  • Action: Thực hiện một hành động mới chưa từng thực hiện

Đến đây bạn đã biết được Hooks là gì rồi phải không nào. Tuy nhiên với Filter và Action còn hơi mơ hồ. Tiếp tục theo dõi để hiểu sâu hơn nhé.

Hàm Action Hook là gì?

Action hook là một hành động mới chưa từng thực hiện trên Theme. Một action hook không cần trả về giá trị.

Action hook (Các móc hành động) là các móc được kích hoạt trong một sự kiện hoặc hành động cụ thể xảy ra trong luồng của một yêu cầu cụ thể trong WordPress. Người ta có thể thêm chức năng riêng trên các hành động như vậy, và cũng có thể thực hiện một số nhiệm vụ bổ sung trên hành động cụ thể đó.

Ví dụ:

Mình sẽ viết một đoạn code trong file footer.php như sau:

<div class="last-footer">
<div class="container">
<?php do_action( 'copyright' ); ?>
</div></div>
</div>

Sau đó chèn đoạn code này vào file functions.php

add_action( 'copyright', function() {
echo '<p>Được thiết kế bởi Quách Quỳnh chấm cơm</p>';
} );

Ta sẽ thấy có mối liên hệ giữa hai tập tin này. Trong header.php sẽ sử dụng hàm do_action() để thực hiện hành động. Còn tại functions.php sử dụng add_action để thêm hành động đó thêm hình ảnh cho logo.

Hàm Filter Hook là gì?

Filter Hook là ghi đè lên một biến hay một thứ gì đó đã tồn tại rồi, có thể là trong Plugin hoặc Theme. Lúc này chúng ta sẽ sửa lại kịch bản ngôn ngữ PHP ở ngay tại nơi mà điểm neo đó đã được khai báo.

Filter Hook là hành động chúng tôi có thể sửa đổi nội dung trả về. Nội dung đó có thể là văn bản của một trang hoặc bài đăng, tên tác giả hoặc bất kỳ tùy chọn nào truy xuất từ ​​cơ sở dữ liệu. Nói một cách thực tế hơn, với Filter WordPress thường làm việc trên nội dung, thực hiện các “thay đổi” và sau đó trả lại nội dung đó.

Các bộ lọc trong WordPress thường được kích hoạt trước khi bất kỳ nội dung nào được lưu hoặc hiển thị trên màn hình. Người ta có thể thêm một chức năng trên một bộ lọc và thay đổi nội dung sẽ được lưu hoặc hiển thị trên trình duyệt.

Cũng tương tự như do_action, ở đây chúng ta có hàm apply_filters ().

Ví dụ:

Tại file footer.php thường được viết

<?php
$copyright = 'Design by Quach Quynh';
echo apply_filters( 'quachquynh_copyright', $copyright );
?>

Bây giờ muốn thay đổi dòng chữ đó ta vào functions.php thêm đoạn code

<?php
function quachquynh_copyright_filter( $content ) {
$content = 'Copyright by Quach Quynh';
return $content;
}
add_filter( 'quachquynh_copyright', 'quachquynh_copyright_filter' );
?>

Kết luận: Action Hooks và Filter Hooks là những thứ cốt lõi trong WordPress. Những điều này làm cho nền tảng WordPress hoàn toàn có thể mở rộng mà không cần phải sửa đổi các tệp ở trong bộ Core. Trong plugin hoặc Theme, bạn có thể thực thi mã riêng theo các hành động cụ thể mà không cần phải thực hiện bất kỳ sửa đổi nào đối với bất kỳ tệp lõi trong WordPress.

Related Posts

Hướng dẫn cách tắt comment trong wordpress

Trong quá trình xây dựng và quản lý một trang web WordPress, việc tắt chức năng comment có thể là một yêu cầu phổ biến. Điều này…

7 Cách chọn sản phẩm kinh doanh online thành công

7 Cách chọn sản phẩm kinh doanh online thành công

Kinh doanh online bên cạnh những ưu thế thì rủi ro cũng không hề nhỏ, việc bạn tính toán thật kỹ lưỡng trước khi quyết định bán…

Chỉnh sửa Header trong WordPress

Header là khu vực hiển thị phần đầu tiên của trang web. Tại đây nó sẽ hiển Logo, banner, Menu hoặc các mạng xã hội được tích…

doi-mat-khau-admin-wordpress-1

Đổi password admin trong WordPress

Khu vực quản trị của WordPress chỉ admin mới có thể đăng nhập được. Vì thế mật khẩu đóng vai trò quan trọng. Một password sử dụng…

Upload Theme trong Wordpress

Hướng dẫn cách up Theme lên WordPress

Với những người mới bắt đầu học WordPress thường gặp khó khăn khi thay đổi giao diện. Bài viết này sẽ giúp bạn biết cách upload theme,…

Hướng dẫn chỉnh sửa theme WordPress

Trước đây mới làm quen với nền tảng WordPress mình cảm thấy khá khó khăn không biết làm thế nào để chỉnh sửa theme Wordpres, mãi một…