Sự khác biệt giữa hook, action & filter trong WordPress

Lượt xem
Home

Trong phát triển WordPress, filter có thể được sử dụng để thay đổi hoặc mở rộng chức năng của WordPress. Thực hiện điều này bằng cách lấy một số dữ liệu do WordPress cung cấp, thay đổi thành cái khác, sau đó truyền ngược lại. Trong bài viết này, Vietnix sẽ cung cấp rõ hơn về những thông tin liên quan đến filter trong WordPress.

Filter trong WordPress là gì?

Filter là một trong những tính năng lớn giúp WordPress có thể tùy chỉnh dễ dàng. Chúng là các đoạn code PHP được hooked vào một event WordPress. Khi event được kích hoạt, filter sẽ được áp dụng lên dữ liệu đầu ra được tạo ra bởi hook event.

Filter trong WordPress là gì?
Filter trong WordPress là gì?

Chúng được sử dụng rộng rãi bởi các nhà phát triển plugintheme. Tuy nhiên, nếu bạn không phải là một nhà phát triển, thì bạn có thể dán các đoạn code từ web để thêm các tính năng mới vào trang web, nhiều trong số đó bao gồm filter.

Filter sẽ thay đổi hành vi mặc định của một chức năng cụ thể trên trang web WordPress. Làm điều này bằng cách thao tác dữ liệu mà filter nhận được và sau đó trả dữ liệu đó về WordPress trước khi được hiển thị trong trình duyệt.

Ví dụ, filter có thể được sử dụng để cắt ngắn văn bản, thay đổi định dạng nội dung, đính kèm liên kết vào bài viết, chỉnh sửa các block trên một trang và thay đổi các tùy chọn được lấy từ cơ sở dữ liệu. Chúng cũng có thể thay đổi độ dài của đoạn trích, đặt các bài viết liên quan bên dưới nội dung chính, hoặc thay đổi giá trong WooCommerce.

Filter được thêm bằng hàm add_filter(). WordPress có một số hàm cho phép bạn sử dụng các action, nhưng đây là những hàm được sử dụng phổ biến nhất:

  • add_filter(): hàm này gắn kết một hàm vào một hook.
  • remove_filter(): hàm này xóa một hàm được gắn kết vào một hook filter đã chỉ định.
  • doing_filter(): hàm này phát hiện bất kỳ filter nào đang được thực hiện.
  • has_filter(): kiểm tra xem một filter đã được đăng ký chưa.

Filter được sử dụng bởi các nhà phát triển plugin và theme để thêm chức năng phụ vào WordPress. Bạn cũng có thể sử dụng filter để tùy chỉnh theme của mình bằng cách thêm các đoạn code từ hướng dẫn trực tuyến.

Lưu ý: Nếu bạn là người mới bắt đầu, thì Vietnix khuyến nghị không chỉnh sửa bất kỳ file WordPress nào. Chỉ những người dùng có kinh nghiệm, thoải mái với việc chỉnh sửa file functions.php và có kiến thức về PHP mới có thể làm điều này.

Nếu bạn là người mới bắt đầu, nên sử dụng một plugin để thực hiện công việc cần thiết hoặc tìm kiếm một chuyên gia để chỉnh sửa code.Trước khi chỉnh sửa bất kỳ code nào trên trang web WordPress, Vietnix khuyên bạn nên sao lưu trang web của mình trong trường hợp có lỗi mã hóa.

Khi sử dụng dịch vụ WordPress Hosting tại Vietnix, bạn có thể hoàn toàn an tâm bởi hệ thống sao lưu tự động được thực hiện 4 lần mỗi ngày, đảm bảo rằng dữ liệu của bạn luôn được bảo vệ tốt nhất.

Bất kể có sự cố xảy ra như mất dữ liệu, lỗi kỹ thuật hay tình huống không mong muốn, bạn luôn có khả năng khôi phục lại trạng thái gần nhất của trang web một cách dễ dàng. Vietnix luôn có sẵn bản sao lưu trong vòng 7 ngày gần nhất đồng nghĩa với việc bạn có khả năng quay trở lại bất kỳ thời điểm nào trong tuần trước, giúp đảm bảo rằng công trình xây dựng trực tuyến của bạn luôn được bảo vệ và duy trì tốt nhất.

Nếu bạn không có plugin sao lưu, hãy tham khảo bài viết sau để biết thêm thông tin về plugin sao lưu:

Vietnix cũng khuyến nghị bạn không nên thêm code trực tiếp vào các file theme vì có thể bạn sẽ mất các tùy chỉnh của mình vào lần cập nhật theme tiếp theo. Thay vào đó, bạn nên sử dụng một plugin đoạn code để thêm code tùy chỉnh vào WordPress, tạo một plugin cụ thể cho trang web, hoặc tạo một child theme và chỉnh sửa nó thay vì parent theme.

Để hiểu thêm về vấn đề này, bạn có thể tham khảo bài viết sau để biết thêm chi tiết:

Sự khác biệt giữa các hook, action và filter là gì?

Để hiểu rõ hơn về filter trong WordPress, việc hiểu cách chúng liên quan đến hai thuật ngữ hook và action, rất hữu ích. Hiểu ba thuật ngữ này cùng nhau sẽ làm cho thuật ngữ filter dễ nắm bắt hơn.

Hook là nền tảng của phát triển plugin và theme WordPress. Đó là những nơi mà các nhà phát triển có thể “móc” code tùy chỉnh của họ vào WordPress tại các vị trí cụ thể và thay đổi cách hoạt động của WordPress mà không cần chỉnh sửa các file cốt lõi.

Có hai loại hooks:

  • Filter hooks cho phép bạn “thay đổi” vài thứ. Chúng chặn dữ liệu đang được xử lý, cho phép bạn chỉnh sửa nó, sau đó truyền lại. Chúng được sử dụng để lọc đầu ra khi được gửi đến cơ sở dữ liệu hoặc trình duyệt của người dùng.
  • Action hooks cho phép bạn “làm” điều gì đó. Chúng cho phép bạn thêm chức năng phụ và được thực thi khi các event như khi một theme hoặc plugin được kích hoạt, hoặc khi một bài viết được xuất bản. Sau khi hành động đã được thực hiện, chúng không cần trả lại bất kỳ thông tin nào.

Các action hook và filter này là nền tảng của cách hoạt động của WordPress cốt lõi, theme, và plugin. Chúng hoạt động cùng nhau để cho phép các nhà phát triển có độ linh hoạt lớn để chỉnh sửa các event, filter và action mặc định của WordPress.

Các nhà phát triển cũng có thể tạo ra các action và filter tùy chỉnh của riêng họ để các nhà phát triển khác có thể mở rộng plugin hoặc theme của họ.

Ví dụ về filter WordPress

Filter trông như thế nào? Dưới đây là một số ví dụ:

Giả sử chúng ta muốn hiển thị một biểu tượng hình ảnh khi một bài viết thuộc về một danh mục cụ thể được hiển thị. Trong tình huống này, chúng tạo một hàm kiểm tra xem một bài viết có nằm trong danh mục cụ thể đó hay không. Nếu có, thì hiển thị hình ảnh.

Tiếp theo, Vietnix hook hàm đó vào event the_content. Bây giờ bất cứ khi nào event the_content diễn ra, hàm của này sẽ tự động được kích hoạt để lọc đầu ra của event the_content.

// First we hook our own function with the_content event
add_filter( 'the_content', 'wpb_content_filter' );
  
// Now we define what our function would do.
// In this example it displays an image if a post is in news category.
function wpb_content_filter( $content ) {
    if ( in_category('news') )
        $content = sprintf('<img class="news-icon" src="%s/images/news_icon.png" alt="News icon" title="" />%s', get_bloginfo( 'stylesheet_directory' ), $content);
  
    // Returns the content.
    return $content;
}

Dưới đây là một ví dụ khác về việc sử dụng filter WordPress. Đoạn code mẫu này thêm một hàm wpb_custom_excerpt vào filter get_the_excerpt:

function wpb_custom_excerpt( $output ) {
  if ( has_excerpt() && ! is_attachment() ) {
    $output .= wpb_continue_reading_link();
  }
  return $output;
}
add_filter( 'get_the_excerpt', 'wpb_custom_excerpt' );

WordPress có nhiều filter được định nghĩa trước cho phép các nhà phát triển thêm code của họ vào các điểm cụ thể trong toàn bộ WordPress core. WordPress Plugin API cung cấp một danh sách rộng lớn các hook filter có sẵn.

Lời kết

Vietnix hy vọng bài viết này đã giúp bạn tìm hiểu thêm về filter trong WordPress. Bạn cũng có thể xem thêm một số bài viết khác như tìm hiểu các khái niệm cơ bản của Webhook hoặc cách vô hiệu hóa PHP trong thư mục WordPress cụ thể để có ý tưởng hữu ích về cho website, chúc bạn thành công!

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

5/5 - (87 bình chọn)

Hoàng Vui

Kết nối với mình qua

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận