LẬP TRÌNH PLUGIN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 03: Các bước tạo plugin trong WordPress (căn bản)

Trong bài này mình sẽ hướng dẫn các bạn các bước để tạo plugin trong WordPress, qua bài này bạn sẽ hiểu được cấu trúc folder của một plugin trong WordPress để từ đó tự mình code plugin WP một cách dễ dàng.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

WordPress là một CMS mã nguồn mở giúp quản lý nội dung trên nền web một cách dễ dàng. Trước đây WordPress được dùng để xây dựng blog, tuy nhiên bây giờ ta có thể sử dụng WordPress để xây dựng hầu hết các loại website như web giới thiệu, web bán hàng và web tin tức.

Khi bạn cài đặt WordPress thì mặc định nó sẽ kích hoạt một theme blog bình thường, và bạn có thể tạo một theme khác bằng cách sử dụngTemplate Tags để đổ dữ liệu vào layout mới đó. Tuy nhiên, thao tác này chỉ dừng lại ở mức thay đổi giao diện chứ không thể bổ sung thêm chức năng của website được.

Bây giờ nếu mình muốn làm một trang web bán hàng thì phải làm thế nào? Đơn giản là sử dụng những plugin có sẵn như woocommerce, tuy nhiên chúng ta đang học lập trình theme WordPress nên bạn hãy tự mình tạo ra một plugin mới sẽ giúp tích lũy kinh nghiệm tốt hơn.

Bài viết này được đăng tại [free tuts .net]

1. Plugin WordPress là gì?

Plugin WordPress là những module xử lý một chức năng cụ thể nào đó, nó sử dụng các API mà WordPress đã cung cấp để can thiệp vào core thay vì sửa trực tiếp trong core.

Hiện nay trên trang chủ của WordPress có hơn 11 ngìn plugins và chúng đang tăng dần theo thời gian, bạn có thể dễ dàng tìm kiếm một plugin nào đó rất dễ dàng bằng cách cung cấp từ khóa cần tìm trong trang đó.

Chúng ta chia làm hai đối tượng sử dụng Plugin chính như sau:

  • Người phát triển plugins: Đối tượng này dựa vào yêu cầu của chức năng, kết hợp với các kiến thức lập trình WordPress để xây dựng plugin, sau khi xây dựng xong họ có thể bán hoặc public miễn phí cho người sử dụng.
  • Người sử dụng plugins: Đối tượng này chỉ cần tìm plugin phù hợp và kích hoạt là có thể sử dụng được.

Nếu bạn thuộc đối tượng người sử dụng plugin thì bài này chỉ mang tính tham khảo, nghĩa là bạn chỉ cần đọc cho biết chứ không làm được. Nhưng nếu bạn là một nhà phát triển plugin thì đòi hỏi bạn phải thành thao các kiến thức mà mình đề cập tới trong series này.

Tóm lại, plugin trong WordPress được tạo ra đẻ xử lý một bài toán / chức năng nào đó. Ví dụ bạn cần tạo website bán hàng thì bạn sẽ tạo một plugin bán hàng, bạn cần tạo website truyện thì bạn tạo một plugin truyện, như vậy sau này muốn tạo nhiều website truyện hoặc bán hàng thì chỉ việc cài đặt plugin đó là được chứ không mất công code lại từ đầu.

2. Cấu trúc một plugin trong WordPress

Mỗi plugin là file PHP chưa trong một folder hoặc là một file php nằm ở cấp ngoài cung của thư mục wp-content/plugins.

Ví dụ mình cần tạo một plugin tên là wp-learn thì mình sẽ tạo một folder nằm trong thư mục wp-content/plugins và một file tên là wp-learn.php (xem hình).

cau truc plugin wordpress png

Bước tiên theo bạn cần phải khai báo thông tin của plugin trong file wp-learn.php thì WordPress mới nhận diện được nhé. Cấu trúc như sau:

/**
Plugin Name: Tên Plugin
Plugin URI: URL Plugin trên wordpress.org
Description: Mô tả cho plugin
Author: Tên tác giả
Version: Version plugin
Author URI: Trang web tác giả
*/

Ok, bây giờ bạn sẽ viết nội dung cho file wp-learn.php như sau:

<?php
/**
Plugin Name: Learn WordPress
Plugin URI: https://freetuts.net
Description: Plugin dùng để học WordPress
Author: Nguyễn Văn Cường
Version: 1.0
Author URI: https://freetuts.net
*/

Bây giờ bạn vào trang admin của WordPress và chọn menu Plugin -> Installed Plugins thì sẽ thấy giao diện như sau:

cau truc plugin wordpress 1 png

Phần bôi đỏ chính là plugin mà chúng ta đã viết, bạn click vào chữ Activate mà mình đã gạch chân để kích hoạt plugin này. Vì hiện tại plugin này chưa code gì nên WordPress vẫn kích hoạt bình thường chứ không có lỗi.

Vậy tóm lại như sau, để tạo một plugin trong WordPress thì bạn tạo một thư mục nằm trong folder wp-content/plugins, sau đó tạo một file php trùng tên với folder đó và phía trên cùng của file phải có đoạn mã khai báo thông tin của plugin.

3. Tham khảo plugin mẫu akismet trong WordPress

Để rõ ràng hơn thì bạn mở file akismet.php nằm trong thư mục wp-content/plugins/akismet thì sẽ thấy nội dung như sau:

<?php
/**
 * @package Akismet
 */
/*
Plugin Name: Akismet
Plugin URI: http://akismet.com/
Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) <a href="http://akismet.com/get/">Sign up for an Akismet plan</a> to get an API key, and 3) Go to your Akismet configuration page, and save your API key.
Version: 3.1.10
Author: Automattic
Author URI: http://automattic.com/wordpress-plugins/
License: GPLv2 or later
Text Domain: akismet
*/

/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

Copyright 2005-2015 Automattic, Inc.
*/

// Make sure we don't expose any info if called directly
if ( !function_exists( 'add_action' ) ) {
	echo 'Hi there!  I'm just a plugin, not much I can do when called directly.';
	exit;
}

define( 'AKISMET_VERSION', '3.1.10' );
define( 'AKISMET__MINIMUM_WP_VERSION', '3.2' );
define( 'AKISMET__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'AKISMET_DELETE_LIMIT', 100000 );

register_activation_hook( __FILE__, array( 'Akismet', 'plugin_activation' ) );
register_deactivation_hook( __FILE__, array( 'Akismet', 'plugin_deactivation' ) );

require_once( AKISMET__PLUGIN_DIR . 'class.akismet.php' );
require_once( AKISMET__PLUGIN_DIR . 'class.akismet-widget.php' );

add_action( 'init', array( 'Akismet', 'init' ) );

if ( is_admin() ) {
	require_once( AKISMET__PLUGIN_DIR . 'class.akismet-admin.php' );
	add_action( 'init', array( 'Akismet_Admin', 'init' ) );
}

//add wrapper class around deprecated akismet functions that are referenced elsewhere
require_once( AKISMET__PLUGIN_DIR . 'wrapper.php' );

Tạm thời ta không quan tâm là trong đó nó viết gì mà chỉ quan tâm đến đoạn code giới thiệu plugin như sau:

/**
 * @package Akismet
 */
/*
Plugin Name: Akismet
Plugin URI: http://akismet.com/
Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from spam</strong>. It keeps your site protected even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) <a href="http://akismet.com/get/">Sign up for an Akismet plan</a> to get an API key, and 3) Go to your Akismet configuration page, and save your API key.
Version: 3.1.10
Author: Automattic
Author URI: http://automattic.com/wordpress-plugins/
License: GPLv2 or later
Text Domain: akismet
*/

Như vậy đây chính là đoạn mã LUÔN LUÔN PHẢI CÓ trong một plugin WordPress nhé các bạn.

3. Lời kết

Qua bài này bạn đã biết các bước tạo plugin trong WordPress cũng như cấu trúc plugin của WordPress. Đây là bài quan trọng đầu tiên trong series học lập trình plugin WordPress nên có gì thiếu sót mong các bạn thông cảm và góp ý tích cực.

* Lưu ý: Kể từ các bài tiếp theo mình sẽ sử dụng plugin này để demo cho các ví dụ luôn nhé!

Cùng chuyên mục:

Child theme là gì? Cách tạo Child theme trong WordPress

Child theme là gì? Cách tạo Child theme trong WordPress

Cách tạo Shortcodes trong WordPress từ A-Z

Cách tạo Shortcodes trong WordPress từ A-Z

Cách sửa lỗi SSL trong WordPress và cài đặt

Cách sửa lỗi SSL trong WordPress và cài đặt

Sử dụng  CSS & JavaScript trong Wordpress

Sử dụng CSS & JavaScript trong Wordpress

Cách tạo và sử dụng các template file trong theme Wordpress

Cách tạo và sử dụng các template file trong theme Wordpress

Cách tạo Widget trong Theme WordPress

Cách tạo Widget trong Theme WordPress

Theme trong WordPress là gì? Cách cài đặt Theme trong WordPress

Theme trong WordPress là gì? Cách cài đặt Theme trong WordPress

Cách tạo Theme WordPress từ Scratch từ A-Z

Cách tạo Theme WordPress từ Scratch từ A-Z

Bài 06: Tạo trang quản lý Options trong WordPress

Bài 06: Tạo trang quản lý Options trong WordPress

Ở bài trước mình có nêu ra một ví dụ về quản lý thông tin…

Bài 05: Options API trong WordPress: add_option / get_option ...

Bài 05: Options API trong WordPress: add_option / get_option ...

Trong database của WordPress bạn sẽ thấy một table ten là [prefix]_options, table này sẽ…

Bài 04: Tìm hiểu Hooks , Action và Filter trong WordPress

Bài 04: Tìm hiểu Hooks , Action và Filter trong WordPress

Bạn đã từng nghe khái niệm lập trình hướng sự kiện trong các Framework như…

Bài 02: WordPress API là gì? Danh sách API trong WordPress

Bài 02: WordPress API là gì? Danh sách API trong WordPress

Đáng lẽ mình không viết bài này nhưng lúc đang viết bài tiếp theo thì…

Bài 01: WordPress là gì? Nên làm website bằng WordPress?

Bài 01: WordPress là gì? Nên làm website bằng WordPress?

WordPress là một CMS được phát triển trên ngôn ngữ lập trình PHP ...

Bài 12: Custom Taxonomy  trong WordPress

Bài 12: Custom Taxonomy trong WordPress

Bài trước mình đã hướng dẫn bạn tạo một thể loại bài viết mới bằng…

Bài 11: Tạo Custom Post Type trong WordPress

Bài 11: Tạo Custom Post Type trong WordPress

Đây là các thể loại mặc định có sẵn sau khi bạn cài đặt WordPress.…

Bài 10: Hiển thị metadata ngoài frontend

Bài 10: Hiển thị metadata ngoài frontend

Sẵn có bạn hỏi làm thế nào để hiển thị nội dung bài viết ra…

Bài 09: Bốn bước custom Meta Boxes trong WordPress

Bài 09: Bốn bước custom Meta Boxes trong WordPress

Tới bài thứ chín này thì khái niệm Custom Meta Boxes không còn xa lạ…

Bài 08: Metadata API trong WordPress

Bài 08: Metadata API trong WordPress

WordPress sử dụng mô hình EAV nhằm giúp lập trình viên có thể tùy biến…

Bài 07: Custom Meta Boxes trong WordPress

Bài 07: Custom Meta Boxes trong WordPress

WordPress là một CMS nên hệ thống dữ liệu của nó chỉ dừng lại ở…

Bài 06: Tạo menu trong Admin WordPress

Bài 06: Tạo menu trong Admin WordPress

Ở bài tạo trang quản lý Options mình đã hướng dẫn các bạn thêm một…

Top