1.WordPress plugin là gì và nó hoạt động như thế nào?
WordPress plugin là một đoạn code được tạo ra để gắn kết (plug) vào trong code gốc của WordPress website. Nói đơn giản hơn, nó là phần mở rộng của website, dùng để điều chỉnh và cải thiện chức năng chính của website WordPress đó.
Việc sử dụng plugin hiệu quả hơn là chỉnh sửa trực tiếp mã nguồn gốc của WordPress, vì việc này tốn thời gian, đòi hỏi kinh nghiệm và biết lập trình. Sử dung plugin rất dễ vì bạn có thể nhanh chóng tải về, nhanh chóng cài đặt hay gỡ bỏ để xử lý một lượng code lớn mà plugin đó làm được.
Với plugin, bạn không chỉ “nhập” code mới vào code gốc của WordPress. Khi bạn thấy các thay đổi này không còn giá trị nữa, bạn có thể “khắc xuất” code đó bằng cách vô hiệu hóa plugin này.
Điều tuyệt vời ở chỗ có hàng ngàn plugin đã được lập trình sẵn chỉ chờ bạn gắn vào trong website WordPress thôi. Sử dụng plugin một cách thông minh không chỉ tăng chức năng và trải nghiệm website lên, nó còn cải thiện toàn bộ quá trình làm việc của bạn lên, giúp bạn xử lý công việc hiệu quả hơn.
2.Cấu trúc wordpress plugin
Thông thường toàn toàn bộ code plugin sẽ được nằm trong một thư mục để dễ dàng quản lý. Nếu code không có nhiều thì plugin có thể chỉ là một file duy nhất.
Hình dưới là plugin được tạo ra bởi nhiều file.
Hình dưới là plugin được tạo ra bởi một file.
Dù plugin được tạo ra từ nhiều file hay một file thì chúng đều cần một file index. File này chỉ cho wordpress biết nó là một plugin.
File index này gồm 2 thành phần:
Plugin header: Là phần chú thích nằm trên cùng của file index. Cung cấp thông tin cho wordpress.
Code: Code xử lý của plugin.
- Plugin header
Plugin header là thành phần không thể thiếu của một plugin. Nó chứa các trường cần thiết giúp wordpress nhận biết được đâu là code plugin đâu không phải. Plugin header tối thiểu phải chứa trường sau
Trường Plugin Name giúp cho wordpress tìm được plugin và hiển thị chúng lên trang web quản trị. Ngoài trường đó ra thì plugin header còn nhiều trường khác nữa.
-
Plugin Name: (required) The name of your plugin, which will be displayed in the Plugins list in the WordPress Admin.
-
Plugin URI: The home page of the plugin, which should be a unique URL, preferably on your own website. This must be unique to your plugin. You cannot use a WordPress.org URL here.
-
Description: A short description of the plugin, as displayed in the Plugins section in the WordPress Admin. Keep this description to fewer than 140 characters.
-
Version: The current version number of the plugin, such as 1.0 or 1.0.3.
-
Requires at least: The lowest WordPress version that the plugin will work on.
-
Requires PHP: The minimum required PHP version.
-
Author: The name of the plugin author. Multiple authors may be listed using commas.
-
Author URI: The author’s website or profile on another website, such as WordPress.org.
-
License: The short name (slug) of the plugin’s license (e.g. GPLv2). More information about licensing can be found in the WordPress.org guidelines.
-
License URI: A link to the full text of the license (e.g. https://www.gnu.org/licenses/gpl-2.0.html).
-
Text Domain: The gettext text domain of the plugin. More information can be found in the Text Domain section of the How to Internationalize your Plugin page.
-
Domain Path: The domain path lets WordPress know where to find the translations. More information can be found in the Domain Path section of the How to Internationalize your Plugin page.
-
Network: Whether the plugin can only be activated network-wide. Can only be set to true, and should be left out when not needed.
Bây giờ, ta sẽ xem plugin header của plugin Hello Dolly:
vim /var/wwww/wp-content/plugins/hello.php
Plugin header của file hello.php chứa các trường:
-
Plugin Name: Tên của plugin.
-
Plugin URI: Link đến trang chủ của plugin.
-
Description: Mô tả về plugin.
-
Version: phiên bản hiện tại của plugin.
-
Author URI: Link đến profile của tác giả.
Bây giờ ta cùng xem những trường này sẽ hiển thị như nào trên trang web.
- Hook
Hook được sửa dụng trong wordpress để tương tác hoặc thay đổi tính năng của core wordpress. Trong wordpress có 2 loại hook đó là: Actions và Filters.
-
Actions cho phép lập trình viên thêm dữ liệu hoặc thay đổi cách thức hoạt động của worpdress. Actions sẽ được thự thi nếu sự kiện xảy ra trong lúc wordpress core, plugins, themes đang thực thi. Hàm callback của actions thực thi và không có kết quả trả về.
-
Filters cho phép lập trình viên thay đổi dữ liệu trong lúc wordpress core, plugins, themes đang thực thi. Hàm callback nhận đầu vào là một viết sau đó sửa đổi chúng và trả lại cho chương trình. Hàm callback của fiters nên có kết quả trả về để filters có thể hoạt động bình thường.
3. Phân tích plugin Hello Dolly
Tiếp đến, cùng mình tìm hiểu plugin Hello Dolly để hiểu rõ hơn về cấu trúc cũng như cách hoạt động của một plugin.
File PHP hướng dẫn: https://drive.google.com/file/d/1av0K7J6G4ZRqQjBqGkn0AQhhjhIniHG-/view?usp=sharing
Đầu tiên là phần Plugin Header phần này mình đã nói ở phần trên nên mình không nhắc lại nữa. Tiếp đến mình sẽ đi đến phần code của plugin. Đây là plugin với mục đích giành cho người mới tiếp cận plugin wordpress nên code của nó rất đơn giản và không có gì.
Đoạn code trên không dài và cũng rất dễ hiểu, code gồm 2 hàm hello_dolly_get_lyric và dolly_css.
-
hello_dolly_get_lyric: Lấy ngẫu nhiên một dòng trong lời bài hát Hello Dolly và hiển thị ra.
-
dolly_css: Chính sửa CSS cho nội dung hiển thị ra.
Tiếp đến ta để ý thấy có 2 dòng code: add_action( 'admin_notices', 'hello_dolly' );, add_action( 'admin_head', 'dolly_css' );. Hai dòng này đăng ký hook khi có sự kiện tương ứng xảy ra thì hàm đăng ký sẽ được thực thi.
Giải thích ý nghĩa:
-
add_action( 'admin_notices', 'hello_dolly' );: Hàm hello_dolly thực hi khi sự kiện admin_notices được gọi.
-
add_action( 'admin_head', 'dolly_css' );: Hàm dolly_css thực thi khi sự kiện admin_heade được gọi.
Ý nghĩa hook:
-
admin_notices: Hiển thị thông báo trên màn hình admin
-
admin_head: Hiển thị HTML trong <head> của HTML.
Cùng xem kết quả trên web khi plugin này hoạt động.
- Trang cài đặt của plugin
Ngoài những plugin đơn giản như ví dụ trên thì hầu hết các plugin đều có nhiều tính năng khác nhau. Để quản lý những tính năng này thì bản thân plugin đã tạo ra trang quản lý để thực hiện cài đặt và cấu hình tương ứng với nhu cầu của người dùng.
Hình trên là menu của plugin Ajax Load More (cho phép cuộn vô hạn như facebook).
Với từng plugin khác nhau menu sẽ khác nhau và các chức năng cũng khác nhau. Khi muốn cài đặt hay chỉnh sửa những gì liên quan đến plugin thì ta vào menu tương tứng của plugin để thực hiện cho phù hợp.
Ngoài tạo ra một menu riêng thì plugin có thể tạo một mục con trong mục Settings của wrodpress. Trong này cũng chứa các cài đặt cho plugin đó.
4. Kết luận
Nói ngắn ngọn, nếu không nhờ vào plugin, WordPress sẽ không phát triển mạnh mẽ như bây giờ. Plugin làm tăng chức năng của website, bảo vệ website, tối đa hóa tìm năng của nó.
Bạn đã biết plugin là gì, cấu trúc. Tuy nhiên, đừng vì điều đó mà quên kiểm tra plugin trước khi cài đặt.