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: 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:

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.

Nguồn: freetuts.net

Leave a Reply

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