Hướng dẫn tạo Action và filter hooks trong wordpress

Quảng cáo
Ads_ngang
Website dinhthuanit.com có bài Hướng dẫn tạo Action và filter hooks trong wordpress

Trong bài hôm nay, các bạn sẽ được ánh nhìn tổng quát về hệ thống hooks trong wordpress. WordPress được xây dựng từ một thư viện Hooks khổng lồ, hầu như trong khi thiết kế wordpress bạn cũng phải sử dụng đến hook. Hooks được hiểu là các hàm (function), dùng để nhóm các hàm lại. tỉ dụ đơn giản: để xử lý một vấn đề bạn có thể chia tách làm nhiều hàm và phối hợp gọi chúng, nhằm thiết kế cấu trúc này wordpress đã xây dựng ra khai niệm hooks để liên kết 1 hook với nhiều function.

Có 2 loại hooks là action và filter. Tất cả các hooks được tạo ra thì lưu ở biến toàn cục $wp_filter có kiểu mảng mà keys củ nó là tên hook (action và filter).

wp-hook

Filters

Hệ thống Filter bao gồm các hàm của wordpress và của bạn tạo thêm. Khác với action, filter cũng có thể có thể trả về giá trị.
Để đăng ký một filter bạn sử dụng hàm add_filter:

 add_filter( $tag, $function_to_add, $priority, $accepted_args );  

Trong đó:

  • $tag : tên filter
  • $function_to_add : tên hàm của filter, nó được gọi khi sử dụng.
  • $priority : một filter cũng có thể có thể chứa nhiều hàm, chỉ định thứ tự hàm này được gọi

Gọi filter và truyền tham số cho nó. WordPress có filter img_caption_shortcode dùng làm tạo caption image, đoạn code sau đây ta truyền 3 tham số vào filter img_caption_shortcode .

 // Allow plugins/themes to override the default caption template. $output = apply_filters('img_caption_shortcode', '', $attr, $content); if ( $output != '' ) return $output;  

Tạo nhiều hàm sử lý cho 1 filter.

 add_filter('myfilter','myfun1',3); add_filter('myfilter','myfun2',1); add_filter('myfilter','myfun3',2); function myfun1(){ } function myfun2(){ } function myfun3(){}  

Khi gọi myfilter thì gọi 3 hàm trên của filter theo thứ tự: myfun2,myfun3,myfun2.

 apply_filters('myfiter');  

Các tỉ dụ khác về sử dụng filters:

Custom dynamic sidebar, tạo hàm riêng thay vì sử dụng hàm lấy sidebar dynamic_sidebar .

 function mytheme_sidebar($name) { $name = apply_filters('mytheme_sidebar', $name); get_sidebar($name); } //Then use your own filter to modify the sidebar add_filter('mytheme_sidebar', 'mytheme_custom_sidebar'); function mytheme_custom_sidebar($name) { return is_user_logged_in() ? 'loggedin' : $name; }  

Lưu ý: mọi thứ các tên hooks cần được viết thường mới hoạt động chính xác.

Action

Liên kết action với hàm bạn sử dụng add_action() . Cũng giống như filter 1 action cũng có thể liên kết với nhiều hàm, và tất cả những hàm của action được gọi khi bạn gọi do_action(‘your-action-name’)

Ví dụ sau tạo custom action, chèn đoạn sau vào functions.php

 /* a custom action hook */ /* * 1. Create your own custom action hook named 'the_action_hook' * with just a line of code. Yes, it's that simple. * * The first argument to add_action() is your action hook name * and the second argument is the name of the function that actually gets * executed (that's 'callback function' in geek). * * In this case you create an action hook named 'the_action_hook' * and the callback function is 'the_action_callback'. */ add_action('the_action_hook', 'the_action_callback'); /* * 2. Declare the callback function. It prints a sentence. * Note that there is no return value. */ function the_action_callback() { echo ' 

WordPress is nice!

'; } /* * 3. When you call do_action() with your action hook name * as the argument, all functions hooked to it with add_action() * (see step 1. above) get are executed – in this case there is * only one, the_action_callback(), but you can attach as many functions * to your hook as you like. * * In this step we wrap our do_action() in yet another * function, the_action(). You can actually skip this step and just * call do_action() from your code. */ function the_action() { do_action('the_action_hook'); }

Đến đây bạn đã hiểu về kiểu cách hoạt động và sử dụng hooks trong wordpress rồi chứ. Chúc các bạn học tập tốt.

Để nhận được bài viết mới vui lòng đăng ký kênh kiến thức WordPress từ A-Z ở Form bên dưới. Bạn cũng đều có thể nhận được sự trợ giúp trên Twitter và Facebook

Bài viết Hướng dẫn tạo Action và filter hooks trong wordpress được tổng hợp và biên tập bởi: dinhthuanit.com. Mọi ý kiến đóng góp và phản hồi vui lòng gửi Liên Hệ cho dinhthuanit.com để điều chỉnh. dinhthuanit.com xin cảm ơn.

Bài Viết Liên Quan


Bài Viết Khác


Quảng cáo
Ads_ngang