Bài 01: Plugin WordPress là gì? Cấu trúc plugin WordPress

Như ta biết WordPress là một CMS mã nguồn mở giúp quản lý nội dung một cách dễ dàng. Trước đây WordPress được biết đến như một CMS dùng để xây dựng blog, tuy nhiên giờ đây sức mạnh của WordPress không dừng lại ở một blog thông thường mà bạn 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ẽ là một blog bình thường, và bạn có thể sử dụng một layout khác kết hợp với Template Tags để đổ dữ liệu vào layout mới đó, tuy nhiên công việ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. Vậy là vấn đề đã lộ dần ra rồi phải không nào? 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? chẳng lẽ vào Core của WordPress để thay đổi, điều này thật không tốt chút nào.Vậy để giải quyết vấn đề trên thì WordPress cung cấp một chức năng tương đối giống với các phần mềm WinForm đó là cài đặt plugin.

1. Plugin WordPress là gì?

Plugin WordPress là một module xử lý một chức năng nào đó và module này 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. Mỗi plugin có thê có nhiều file PHP, JS, CSS và chung quy lại chúng đều có chung một mục đích đó là đáp ứng một chức năng cụ thể trong Website. 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.

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.

Bạn đang thuộc đối tượng nào?

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 là đượ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à trong series này mình đề cập tới. Vì vậy hãy theo dõi từng bài để có một nền tảng vững chắc nhé.

Tóm lại

Nói tóm lại plugin trong WordPress là một module mở rộng nhằm giải quyết một bài toán, một chức năng cụ thể 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).

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 nữa 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: http://freetuts.net
Description: Plugin dùng để học WordPress
Author: Nguyễn Văn Cường
Version: 1.0
Author URI: http://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:

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.

Để 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 WordPress là gì và cấu trúc một plugin căn bản của WordPress. Đây là bài đầu tiên trong series học WordPress nâng cao 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 ý là kể từ các bài sau mình sẽ sử dụng plugin này để demo các ví dụ luôn nhé các bạn.

Hãy để lại link bài viết gốc khi chia sẻ bài viết này, mình sẽ report DMCA với những website lấy nội dung mà không để nguồn hoặc copy bài với số lượng lớn.

Nguồn: freetuts.net

Profile photo of adminTheHalfHeart

TheHalfHeart

Có sở thích viết tuts nên đã từng tham gia viết ở một số diễn đàn, đến năm 2014 mới có điều kiện sáng lập ra freetuts.net. Sinh năm 90 và có 1 vợ 2 con, thích ca hát và lập trình.

ĐĂNG BÌNH LUẬN: Đăng câu hỏi trên Group Facebook để được hỗ trợ nhanh nhất.