Action Hook Và Filter Hook Trong WordPress Từ A-Z

Hiểu một cách đơn giản nhất là WordPress được thiết kế theo dạng Mô-đun chia làm nhất nhiều các Hook (là cái móc câu) trong đó có 2 loại Action Hook & Filter Hook nếu anh em nào chưa biết có những hook gì và nó ở đâu thì có thể cài Plugin Hooks Finder vào sẽ thấy.

WP Hooks Finder

Ảnh Vietnix

Và Action Hook & Filter Hook giúp chúng ta có thêm một hành động (Action) hoặc thay thế 1 hành động (Filter), nhắc lại Action để thêm 1 hành động, Filter để thay đổi một hành động.

Action Hook là gì ?

Như đã nói Action là để hook một cái function fr_myplugin_footer() ở vị trí hook wp_footer còn cái hook nó ở đâu thì anh em cài cái plugin kia vào nhé.

Thêm Action

    add_action('wp_footer', 'fr_myplugin_footer');
    
    function fr_myplugin_footer() {
        echo '<div>Chao mung ban den voi footer</div>';
    }

    Xóa Action

    Muốn xóa 1 cái Action Hook nào thì phải biết tên nó là gì và nó ở đâu rồi dùng hàm remove_action() là được nhé, cái này anh em dùng cho cẩn thận nhé biết chắc chắn cái Action nó làm gì.

    remove_action('wp_footer', 'fr_myplugin_footer');

    Xóa tất cả Action

    Nếu muốn xóa tất cả Action trong hook thì dùng hàm này, nhớ là phải biết mình đang làm gì nhé trong hook nó đang có cái gì?

    remove_all_actions( 'wp_footer' );
    

    Filter

    Nhắc lại Filter để thay thế 1 cái Action A bằng 1 cái Action B, ví dụ dưới đây là thay thế cái action the_title bằng cái fr_post_title thứ tự ưu tiên là 10 nó như CSS ấy ông nào ưu tiên cao nó làm.

    Thêm filter

    add_filter( 'the_title', 'fr_post_title', 10);
    
    function fr_post_title() {
        return 'Title'';
    }

    Xóa filter

    remove_filter('the_content', 'convert_smilies');

    Xóa tất cả

    remove_all_filters('the_content');

    Mình đã tóm tắt ngắn gọn nhất có thể rồi, anh em thành tạo 2 cái này thì muốn thêm cái gì vào đâu cũng được luôn á. Việc tùy chỉnh theme sẽ đỡ vất vả hơn nhiều lại chuyên nghiệp.