Hướng dẫn viết một plugin đơn giản cho WordPress – Phần 1

Published by Việt Coding on

Những cái cơ bản của một plugin:

Trái tim của một WP plugin là 2 hàm dưới đây ( thông thường được gọi là “hooks“)

add_action ($tag, $func) documentation
add_filter ($tag,$func) documentation

Phân biệt rõ sự khác nhau của 2 hàm trên là điều rất quan trọng:

  • add_action –> Gọi thực thi một hàm tại một hoặc nhiều vị trí trong quá trình WP thực thi.
  • add_filter –> Lọc dữ liệu. Như là: dấu nháy đơn trước khi thực thi câu lệnh SQL trên CSDL hoặc trong khi trả kết quả cho trình duyệt web hiển thị.

Bạn nên tham khảo thêm WordPress Plugin API để hiểu rõ hơn.

Thông tin của Plugin

Mở file hello-world.php và chèn đoạn comment này vào ngay dòng đầu tiên:

< ?php
/*
Plugin Name: Hello-World
Plugin URI: http://yourdomain.com/
Description: A simple hello world wordpress plugin
Version: 1.0
Author: Shinichi 's Blog
Author URI: http://yourdomain.com
License: GPL
*/
?>

Copy thư mục Hello-World plugin vào wordpress > wp-content > plugins. Vào phần Admin > Plugins bạn sẽ thấy plugin Hello-World trong danh sách như hình

Plugin này sẽ làm tiếp công việc gì ?

Nó sẽ in ra dòng chữ “Hello World !” khi chúng ta gọi nó từ đâu đó trong các tập tin theme template của WP. Để làm điều đó, bạn hãy chèn hàm add_action() vào ngay dưới phần thông tin của plugin trong file hello-world.php

< ?php
/*
Plugin Name: Hello-World
Plugin URI: http://yourdomain.com/
Description: A simple hello world wordpress plugin
Version: 1.0
Author: Balakrishnan
Author URI: http://yourdomain.com
License: GPL
*/
/* This calls hello_world() function when wordpress initializes.*/
/* Note that the hello_world doesnt have brackets.*/

add_action('init','hello_world');

function hello_world()
{
echo "Hello World !";
}
?>

Như vậy, chúng ta đã gần đạt đến kết quả đầu tiên với một plugin đơn giản chỉ với vài dòng lệnh. Với đoạn mã trên có thể dịch nôm na như sau: khi WP khởi chạy, hàm add_action() sẽ gọi hàm hello_world() của chúng ta.

Quảng cáo tài trợ


Việt Coding

Là một người đam mê lập trình, tôi vọc vạch đủ thứ liên quan đến lập trình cho thoả chí tò mò. Hiện làm chủ yếu ở mảng phát triển ứng dụng di động cho iOS và Android với React Native. Thỉnh thoảng vọc vạch mấy thứ liên quan đến Internet of Things như Smart Home. Đang nghịch mấy con Raspberry Pi và thấy nó cũng thú vị :)

7 Comments

Tinh · 29/01/2010 at 15:17

Quyết tâm đọc hết các phần để làm 1 cái riêng cho blogviet, bác nhớ viết hết và chi tiết nhé, em là gà mờ lắm đó:-”
.-= Tinh´s last blog ..Yahoo: Công Cụ Tìm Kiếm Mặc Định Của Firefox Trên Ubuntu =-.

Shinichi · 29/01/2010 at 15:28

@Tinh

Hì hì, chưa rảnh để dịch + biên tập phần 2 nữa. Bác thông cảm chờ vậy
:-”
.-= Shinichi´s last blog ..10 plugins giúp bảo vệ blog WordPress của bạn =-.

TrongCV · 01/11/2012 at 15:09

Dear Bạn. Hiện tại mình củng đang tìm hiểu wp và cung viết theme đơn giản. Trước kia mình làm web asp.net và viết các trang web với nghiệp vụ khá phức tạp. Khi làm việc với wp + theme wp thì mình thấy nó thực sự đơn giản và rất dễ hiểu + nhẹ nhàng. Chỉ có một điều là mình đang loay hoay không biết làm sao viết được 1 ứng dụng như bên .net mà mình đã làm. ex: tao thêm table trong db,truy vấn db, tương tác với người dùng phức tạp…. thì làm thế nào?. Phải chăng là mình phải viết plugin riêng để dùng.
Mong bạn reply!
Chân thành cảm ơn!
TrongCV

    Việt Coding · 04/11/2012 at 19:07

    Bạn xem thử bài này http://codex.wordpress.org/Creating_Tables_with_Plugins

    Sau đó xem thêm các bài về query.

    Thân,

      jenemy · 15/03/2013 at 08:17

      Bài viết hay quá, bao giờ mới có tiếp phần 2 vậy bác ơi 🙂

Aaron Tran · 19/11/2013 at 15:29

Khi nào có phần 2 vậy bác
Em đợi mãi
Hix

Hưng · 11/01/2014 at 17:10

Quá hay, cám ơn bạn đã viết một bài viết hay như này. Mình lúc đầu rất bỡ ngỡ vì chả biết viết plugin như nào nhưng nay đã bắt đầu có thể bắt tay vào viết plugin được rồi. Cám ơn bạn nhé, mong đón đọc những bài viết tiếp theo của bạn

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax