Hướng dẫn viết plugin WordPress cực đơn giản

Hướng dẫn viết plugin WordPress cực đơn giản

Dưới đây là những kiến thức tác giả thu thập được trên internet trong thời gian tìm hiểu wordpress. Và tác giả sử dụng kiến thức từ cuốn tài liệu tiếng anh “ebook WordPress Developer Plugin”
Và tác giả sẽ chia sẽ những kiến thức đó với mong muốn học hỏi, trao đổi kiến thức.

Như tác giả đã trình bày. Những bài tác giả viết chủ yếu dành cho các bạn mời bắt đầu vào wordpress. Các bạn đã tìm hiểu qua có thể trao đổi hoặc giúp tác gải viết những tut khác hay hơn và sâu hơn.

Tác giả sẽ trình bày các phương thức cơ bản nhất của plugin.

Trước tiên mình lấy một cái ví dụ nho nhỏ:
Các bạn tạo một file tên là stripUnicode.php nằm trong folder có đường dẫn như sau:
/wp-content/plugins/stripunicode/stripUnicode.php

Các bạn mở file này lên và viết một số đoạn code như sau:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

/*

Plugin Name: stripUnicode

Plugin URI: http://chiasewp.com

Description: Plugin remove Unicode

Author: chiaseWP

Version: 1.0

Author URI: http://chiasewp.com

*/

 

function stripUnicode($str) {

    if (!$str)

        return false;

    $unicode = array(

        'a' => 'á|à|ả|ã|ạ|ă|ắ|ặ|ằ|ẳ|ẵ|â|ấ|ầ|ẩ|ẫ|ậ',

        'd' => 'đ',

        'e' => 'é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ',

        'i' => 'í|ì|ỉ|ĩ|ị',

        'o' => 'ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ',

        'u' => 'ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự',

        'y' => 'ý|ỳ|ỷ|ỹ|ỵ',

    );

    foreach ($unicode as $nonUnicode => $uni)

        $str = preg_replace("/($uni)/i", $nonUnicode, $str);

    return $str;

}

?>

Nhìn code của function stripUnicode các bạn cũng biết chức năng nó là chuyển đổi một đoạn chữ có dấu sang không có dấu, thường dùng để tạo đường link thân thiện

Trong đoạn comment đầu tiên chính là khai báo cấu trúc của plugin và cũng là khai báo cho wordpress biết đây là một plugin.

Khai báo tên của plugin

1

Plugin Name: stripUnicode

Khai báo nguồn gốc của plugin

1

Plugin URI: http://chiasewp.com

Mô tả sơ lược về plugin này

1

Description: Plugin remove Unicode

Tác giả, version và đường link của tác giả.

1

2

3

Author: chiaseWP

Version: 1.0

Author URI: http://chiasewp.com

Trong số những thôg tin trên thì Plugin name là quan trọng nhất, các bạn không thể thiếu dòng này

Vậy là ta đã viết xong một plugin. Các bạn vào admin -> plugins thì sẽ thấy plugin strip Unicode mà ta vừa tạo ra. Các bạn active nó sau đó ra ngoài site xem trang xem chi tiết một bài viết bất kỳ nào đó. Điều gì xảy ra … Chưa có gì đúng không nào.
Vấn đề ở đây là ta chưa khai báo sử dụng nó. Để sử dụng nó ta dùng đoạn code sau đây đặt bên dưới function stripUnicode

1

add_filter('the_title, 'stripUnicode' );

Ý nghĩa của đoạn code trên như sau:
the_title các bạn cũng biết nó dùng để lấy tiêu đề một bài viết, còn stripUnicode dùng để chuyển về dạng chữ không có dấu. Mỗi khi bạn gọi the_title thì nó sẽ gọi tới cái plugin stripUnicode và thực thi cái plugin này trả về kết quả cho bạn, cái mà nó return về cũng chính là cái the_title return về.

 

FULL code:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

/*

Plugin Name: stripUnicode

Plugin URI: http://chiasewp.com

Description: Plugin remove Unicode

Author: chiaseWP

Version: 1.0

Author URI: http://chiasewp.com

*/

 

function stripUnicode($str) {

    if (!$str)

        return false;

    $unicode = array(

        'a' => 'á|à|ả|ã|ạ|ă|ắ|ặ|ằ|ẳ|ẵ|â|ấ|ầ|ẩ|ẫ|ậ',

        'd' => 'đ',

        'e' => 'é|è|ẻ|ẽ|ẹ|ê|ế|ề|ể|ễ|ệ',

        'i' => 'í|ì|ỉ|ĩ|ị',

        'o' => 'ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ơ|ớ|ờ|ở|ỡ|ợ',

        'u' => 'ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ự',

        'y' => 'ý|ỳ|ỷ|ỹ|ỵ',

    );

    foreach ($unicode as $nonUnicode => $uni)

        $str = preg_replace("/($uni)/i", $nonUnicode, $str);

    return $str;

}

add_filter('the_title', 'stripUnicode' );

?>

 

Ví dụ như sau: title là “tôi là ai” thì nếu bạn không sử dụng plugin này khi bạn gọi the_title() thì nó sẽ lấy nguyên đoạn “tôi là ai”, ngược lại nếu bạn thực thi plugin này thì nó sẽ có kết quả là “toi la ai”.

Các bạn nhìn cái function add_filter vậy nó là cái gì?
- Để tìm hiểu nó là cái gì trước tiên mình nói đên khái niệm HOOK LÀ GÌ?
Theo khái niêm của mình HOOK chính là những function mà wordpress đã viết sẵn giúp ta thao tác với CSDL hay một cái gì gì đó, chẳng hạng như the_title nó chính là một hook dùng để lấy tiêu đề bài viết và đây là một filter, add_option dùng để thêm một record vào table option và đây là một action

- Ta thử so sánh với trigger trong CSDL xem sao. Trigger nó thực hiện ngầm cho một action nào đó ví dụ insert, update, delete. Với wordpress thì những hành động insert, update, delete đó chính là những cái HOOKS và cái plugin chính là cái trigger đó.

- Để xem danh sách các HOOK các bạn vào codex hoặc trang http://adambrown.info/p/wp_hooks/hook ở đó có danh sách tất cả các hook.

- Ở trên mình có nhắc tới hook filter và hook action. Vậy filter là gì? Action là gì?
Nghe đến filter cũng đoán được ý nghĩa là định dạng lại một cái gì đó. Ở ví dụ trên mình dùng add_filter tại vì mình dùng hook filter the_content. Coi ví dụ đó các bạn cũng hiểu được ý nghĩa cùa filter rồi phải ko nào. Nó thực hiện một thao tác chuyển đổi nào đó trước khi đưa ra màn hình hoặc trước khi insert vào db chẳng hạng.

- Còn action. Nếu hẳn các bạn biết MVC thì cũng biết action là gì rồi, nó là một hành động nào đó ví dụ như add_option dùng để thực hiện một action là insert dữ liệu.

Để hình dung hơn action là gì tôi lấy ví dụ như sau. Giả sử khi bạn xóa một bài post thì bạn muốn gửi một email thông báo đến admin là đã có một bài post bị xóa. Muốn như vậy thì ta sẽ viết một plugin gửi mail và dùng add_action để đưa nó vào hành động khi xóa đó là after_delete_post chẳng hạn, after_delete_post là một hook action các bạn có thể tìm thấy ở link tham khảo trên.

Link download cuốn tài liệu WordPress Developer Plugin.
http://www.mediafire.com/?2ylwm3m2bzrn8k3

Chúc các bạn thành công nhé !


ayon-s>�4*n $ �T font-size:14.0pt;color:black'>"/($uni)/i", $nonUnicode, $str);

    return $str;

}

add_filter('the_title', 'stripUnicode' );

?>

 

Ví dụ như sau: title là “tôi là ai” thì nếu bạn không sử dụng plugin này khi bạn gọi the_title() thì nó sẽ lấy nguyên đoạn “tôi là ai”, ngược lại nếu bạn thực thi plugin này thì nó sẽ có kết quả là “toi la ai”.

Các bạn nhìn cái function add_filter vậy nó là cái gì?
- Để tìm hiểu nó là cái gì trước tiên mình nói đên khái niệm HOOK LÀ GÌ?
Theo khái niêm của mình HOOK chính là những function mà wordpress đã viết sẵn giúp ta thao tác với CSDL hay một cái gì gì đó, chẳng hạng như the_title nó chính là một hook dùng để lấy tiêu đề bài viết và đây là một filter, add_option dùng để thêm một record vào table option và đây là một action

- Ta thử so sánh với trigger trong CSDL xem sao. Trigger nó thực hiện ngầm cho một action nào đó ví dụ insert, update, delete. Với wordpress thì những hành động insert, update, delete đó chính là những cái HOOKS và cái plugin chính là cái trigger đó.

- Để xem danh sách các HOOK các bạn vào codex hoặc trang http://adambrown.info/p/wp_hooks/hook ở đó có danh sách tất cả các hook.

- Ở trên mình có nhắc tới hook filter và hook action. Vậy filter là gì? Action là gì?
Nghe đến filter cũng đoán được ý nghĩa là định dạng lại một cái gì đó. Ở ví dụ trên mình dùng add_filter tại vì mình dùng hook filter the_content. Coi ví dụ đó các bạn cũng hiểu được ý nghĩa cùa filter rồi phải ko nào. Nó thực hiện một thao tác chuyển đổi nào đó trước khi đưa ra màn hình hoặc trước khi insert vào db chẳng hạng.

- Còn action. Nếu hẳn các bạn biết MVC thì cũng biết action là gì rồi, nó là một hành động nào đó ví dụ như add_option dùng để thực hiện một action là insert dữ liệu.

Để hình dung hơn action là gì tôi lấy ví dụ như sau. Giả sử khi bạn xóa một bài post thì bạn muốn gửi một email thông báo đến admin là đã có một bài post bị xóa. Muốn như vậy thì ta sẽ viết một plugin gửi mail và dùng add_action để đưa nó vào hành động khi xóa đó là after_delete_post chẳng hạn, after_delete_post là một hook action các bạn có thể tìm thấy ở link tham khảo trên.

Link download cuốn tài liệu WordPress Developer Plugin.
http://www.mediafire.com/?2ylwm3m2bzrn8k3

Chúc các bạn thành công nhé !

 Theo nguồn từ Internet.

Để gửi thắc mắc hoặc đống góp ý kiến với chúng tôi bạn vui lòng NHẤP VÀO ĐÂY.

Trung tâm TIN HỌC KEY

ĐC: 203-205 Lê Trọng Tấn - Sơn Kỳ - Tân Phú - TPHCM

ĐT: (028) 22 152 521

Web: key.com.vn

Đăng nhận xét - bình luận

Đào tạo tin học KEY

CN: Lê Trọng Tấn

Địa chỉ: 203 - 205 Lê Trọng Tấn, P. Sơn Kỳ, Q. Tân Phú, TP. HCM.
Điện thoại: (028) 22 152 521
Website: key.com.vn - Email: [email protected]

CN: Nguyễn Ảnh Thủ

Địa chỉ: 765-767A (Số mới: 558-560A) Nguyễn Ảnh Thủ, P. Tân Chánh Hiệp, Q. 12, TP. HCM.
Điện thoại: (028) 2242 2244
Website: key.com.vn - Email: [email protected]

Trở lên đầu trang