tạo plugin WordPress

Hướng dẫn WordPress – Làm thế nào để tạo plugin WordPress
Hướng dẫn WordPress – Làm thế nào để tạo plugin WordPress
Trong bài hướng dẫn plugin WordPress này, bạn sẽ học cách làm thế nào để tạo plugin WordPress với trang quan trị của riêng nó.

Quan trọng nhất là tạo plugin WordPress sao cho nó tách biệt code của bạn với mã nguồn gốc của WordPress. Nếu có gặp lỗi, phần còn lại của site vẫn sẽ tiếp tục hoạt động bình thường.

Điều chỉnh mã nguồn WP có thể dẫn đến thảm họa. Các plugin cao cấp ngày nay được cung cấp bởi WordPress, bạn có thể tạo plugin thay đổi cách thức hoạt động của mã nguồn gốc mà không thực sự phải điều chỉnh mã nguồn đó.

Bạn cần chuẩn bị gì?
Plugin WordPress là gì?
Hooks là gì?
Bước 1 – Lưu plugin WordPress của bạn
Bước 2 – Tạo file đầu tiên
Bước 3 – Viết function plugin của bạn.
Bước 4 – Tạo trang admin mới
Kết luận
Bạn cần chuẩn bị gì?
Text editor
FTP access vào tài khoản hosting
Một bộ cài WordPress đã hoạt động
Để hoàn tất bài hướng dẫn plugin WordPress này, bạn cần text editor như là Notepad++ hoặc NetBeans. Bạn cũng cần FTP access để truy cập vào tài khoản hosting của bạn và site WordPress đang hoạt động.

Bài hướng dẫn plugin WordPress này được viết cho những ai đã có một số kiến thức cơ bản về PHP. Bạn sẽ cần viết hàm mới, gọi WordPress functions sử dụng parameters và viết PHP comments.

Chúng tôi cũng khuyên là nên tạo backup cho website trước khi làm bất kỳ việc gì.

Plugin WordPress là gì?
Plugin WordPress là bộ mã tăng khả năng của WordPress. Bằng cách kết hợp giữa PHP, HTML, CSS, JavaScript/jQuery hoặc bất kỳ ngôn ngữ lập trình nào khác, một plugin wordpress có thể thêm tính năng vào bất kỳ phần nào của website, bao gồm Admin Control Panel. Bạn có thể chỉnh sửa cách vận hành của WordPress, loại bỏ những thành phần không cần thiết hoàn toàn. Plugin WordPress cho phép bạn dễ điều chỉnh và cá nhân hóa WordPress cho phù hợp với nhu cầu.

Vì Plugin WordPress hoạt động độc lập, chúng không trực tiếp ảnh hưởng tới WordPress core code. Chúng thể được copy và cài đặt vào WordPress. Một cách khác (và không khuyên dùng) để thay đổi WordPress là viết hàm mới vào trong file functions.php, được đặt trong thư mục /wp-includs, hoặc file functions của theme. Vì nó có thể sẽ mang lại nhiều vấn đề hơn.

WordPress và theme của nó nhận cập nhật thường xuyên. Vì vậy trừ khi bạn đang sử dụng WordPress child theme, file functions.php sẽ bị lưu đè lên và code mới của bạn sẽ bị xóa nên phải viết lại từ đầu. Nếu bạn viết nhiều functions và một trong số chúng gặp lỗi không thể debug được, bạn sẽ phải thay toàn bộ file bằng file gốc, xóa tất cả những thay đổi đã thực hiện. Nếu functions của bạn bị xóa khỏi file, website sẽ ngập tràn lỗi PHP vì nó đang gọi các hàm bị thiếu.

Plugins không bao giờ tự động ghi đè hoặc bị xóa khi WordPress cập nhật. Nếu plugin có lỗi, bạn có thể dễ dàng vô hiệu nó trong mục Admin trong khi sửa lỗi. Nếu plugin có lỗi nghiêm trọng, WordPress sẽ tự động vô hiệu nó để site tiếp tục hoạt động.

Hooks là gì?
Plugin WordPress giao tiếp với core code sử dụng hooks. Có 2 loại hooks khác nhau.

Action hooks (để thêm/xóa function)
Filter hooks (để chỉnh dữ liệu được tạo ra bởi functions)
Actions và Action Hooks
Khi truy cập một website WordPress, hàm PHP (được gọi là actions) được gọi ở nhiều điểm, và chúng liên kết với action hooks. Sử dụng action hooks được cấp bởi WordPress, bạn có thể thêm chính function của bạn vào danh sách actions chạy khi action hook được gọi, bạn cũng có thể xóa hàm đã tồn tại Action hooks xác định khi nào actions được ọi. Trước khi đóng thẻ của bất kỳ trang nào, action hook wp_head() sẽ được gọi, actions bị hooks vào wp_head() được chạy

Actions hooks chạy theo ngữ cảnh – một vài được gọi trên từng trang của website, một vài cái khác chỉ được gọi khi mở Admin contorl panel, và vâng vâng. Danh sách actions và trường hợp nó được gọi có thể tìm thấy tại trang Plugin WordPress API/Action Reference page.

Thêm Functions vào một Action Hook bằng add_action()
Để thêm một function vào bất kỳ action hook nào, plguin phải gọi WordPress function có tên add_action(), với ít nhất 2 tham số.

// Hook vào action ‘init’, sẽ được gọi sau khi WordPress load xong core code.

add_action( ‘init’, ‘add_Cookie’ );

// Đặt cookie với thời gian hiện tại

function add_Cookies(){

setcookie(“last_visit_time”, date(“r”), time()+60*60*24*30, “/”);

}
view rawadd_action( ‘init’, ‘add_Cookie’ ); hosted bởi GitHub
Tham số đầu tiên là tên của action hook mà bạn muốn gán vào
Tham số thứ 2 là tên của function bạn muốn chạy
Tham số thứ 3 (tùy chọn) là ưu tiên của hàm mà bạn muốn chạy. Bạn có thể hook bất kỳ con số nào của các hàm khác nhau vào cùng một action hook, để sắp xếp thứ tự theo ý muốn. Mặc định là 10, thêm các con số theo thứ tự từ 11 để chạy sau, và cứ như thế.
Tham số thứ 3 (tùy chọn) là sốtham số, có nghĩa là có bao nhiêu tham số mà function của bạn có thể nhận. Mặc định là 1.
Ví dụ code plugin wordpress để chạy footer cho mỗi trang
Plugin này hook wp_footer() action hook, được gọi ngay khi đóng tag của mỗi trang, và thêm function mới có tên mfp_Add_Text(). Vì đây là thành phần của plugin chứ không phải theme, nó sẽ tiếp tục thực thi nếu bạn kích hoạt hoàn toàn một theme khác. Bạn có thể lưu lại ví dụ bên dưới dưới dạng file php, upload nó lên folder wp-content/plugins/ và kích hoạt nó trong Admin Control Panel để thấy thay đổi.

After the footer is loaded, my text is added!

“;
}
view rawadd_action(“wp_footer”, “mfp_Add_Text”); host with ❤ bởi GitHub
Kết quả:

WordPress Plugin Tutorial – Creating Simple Plugin
Ghi chú: bạn có thể gọi add_action() trước khi định nghĩa function của riêng bạn vì PHP đánh giá toàn bộ script trước khi thực thi. Viết add_action() calls trên cùng của file theo thứ tự thực thi sau đó định nghĩa hàm theo đúng thứ tự bên dưới, sẽ làm cho file dễ đọc hơn.

Xóa hàm từ Action Hook bằng remove_action()
Để xóa một action từ action hook, bạn phải viết một hàm mới gọi là remove_action(), sau đó gọi function bạn đã viết bằng add_action(). Ví dụ bên dưới sẽ rõ hơn

Bạn phải cho remove_action() ít nhất 2 thông tin để làm parameters.

// Hook the ‘init’ action, which is called after WordPress is finished loading the core code, add the function ‘remove_My_Meta_Tags’
add_action( ‘init’, ‘remove_My_Meta_Tags’ );
// Remove the ‘add_My_Meta_Tags’ function from the wp_head action hook
function remove_My_Meta_Tags()
{
remove_action( ‘wp_head’, ‘add_My_Meta_Tags’);
}
view rawfunction remove_My_Meta_Tags() hosted with ❤ bởi GitHub
Paremter đầu tiên là tên của action hook mà function được hook tới
Paremter thứ 2 là tên của function bạn muốn xóa
Paremeter thứ 3 (tùy chọn) là ưu tiên của hàm gốc. Parameter này phải giống với giá trị ưu tiên mà đã được định nghĩa trước đây khi action được thêm vào action hook. Nếu bạn không định nghĩa độ ưu tiên của hàm, đừng include parameter này.
Ví dụ: nếu bạn không muốn đoạn chữ được thêm vào footer trong ví dụ trước xuất hiện vào ngày thứ 2. Một cách để làm là sử dụng PHP date function để lấy ngày hiện tại, rồi sử dụng if…then… điều kiên để kiểm thử ngày hiện tại có phải thứ 2 hay không, rồi gọi remove_action() nếu đó là ngày thứ Hai. Bạn gọi function bằng add_action(), hooking bất kỳ hook nào trước action hook bạn muốn thực hiện. Nếu bạn muốn hook action hook thực thi sau khi wp_footer trong ví dụ này, action sẽ được xóa khỏi hook vì nó đã được chạy rồi.

After the footer is loaded, my text is added!

“;
}

// Define the function named ‘mfp_Remove_Text()’ to remove our previous function from the ‘wp_footer’ action
function mfp_Remove_Text()
{
if (date(“l”) === “Monday”) {
// Target the ‘wp_footer’ action, remove the ‘mfp_Add_Text’ function from it
remove_action(“wp_footer”, “mfp_Add_Text”);
}
}
view rawfunction mfp_Remove_Text() hosted with ❤ bởi GitHub
Filters và Filter Hooks
Một filter function cho phép bạn chỉnh sửa kết quả của data đã được trả lại bởi những hàm đã tồn tại và phải được hook vào một trong các filter hooks. Filter hooks sẵn có khác với actions hooks. Nó hoạt động tương tự action hooks vì nó được gọi ở nhiều thời điểm khác nhau của script và tùy ngữ cảnh. Danh sách filter hooks và context có thể được gọi và tìm thấy tại đây Plugin WordPress API/Filter Reference page.

Thêm Filters bằng cách add_filter()
Để thêm một filter function và bất kỳ filter hook nào, plugin WordPress của bạn phải gọi WordPress function tên add_filter(), với ít nhất 2 tham số.

// Hook the ‘the_content’ filter hook (content of any post), run the function named ‘mfp_Fix_Text_Spacing’
add_filter(“the_content”, “mfp_Fix_Text_Spacing”);

// Automatically correct double spaces from any post
function mfp_Fix_Text_Spacing($the_Post)
{
$the_New_Post = str_replace(” “, ” “, $the_Post);

return $the_New_Post;
}
view rawfunction mfp_Fix_Text_Spacing($the_Post) hosted with ❤ by GitHub
Parameter cần thiết đầu tiên là tên của filter hook bạn muốn hook
Parameter cần thiết thứ 2 là tên của filter function bạn muốn chạy
Parameter thứ 3 (tùy chọn) là độ ưu tiên của hàm bạn muốn chạy. Bạn có thể gán bất kỳ số nào vào các function filter khác nhau vào filter hook. Mặc định ưu tiên là 10, đặt function của bạn sau bất kỳ built-in function nào. Một với số ưu tiên tiếp theo là 11 sẽ chạy tiếp theo, và cứ vậy.
Parameter thứ 4 (tùy chọn) là số lượng tham số, có nghĩa là có bao nhiêu tham số mà filter function tùy chỉnh có thể nhận. Mặc định là 1.
Ví dụ plugin WordPress để chỉnh trích dẫn một bài post
WordPress có hàm để lấy trính dẫn của một bài đặt gọi là get_the_excerpt(), cũng là một filter hook. Hàm thực tế để hiển thị trích dẫn get_the_excerpt() để trích xuất nó, đó là lúc filter được áp dụng và trích dẫn được điều chỉnh trước khi hiển thị. Hàm này định nghĩa filter function nào lấy trích dẫn như là ham số duy nhất, sau đó thêm chữ trước nó, và trả lại giá trị mới mỗi lần get_the_excerpt() được gọi. Vì giá trị trả về của function get_the_excerpt() là giá trị thực sự của trích dẫn, nó được tự động thêm vào thành tham số của $old_Excerpt khi gọi bằng add_filter(). Hàm bạn định nghĩa phải trả về giá trị mới.

Excerpt: ” . $old_Excerpt;
return $new_Excerpt;
}
view rawfunction mfp_Add_Text_To_Excerpt($old_Excerpt) hosted with ❤ by GitHub
Kết quả cuối cùng:Plugin WordPress kết quả
Xóa filters bằng remove_filter()

Xóa filter dễ hơn là xóa một action vì bạn có thể gọi function remove_filter() mà không định nghĩa function mới. Với ví dụ này, một lần nữa bạn thêm điều kiện đơn giản xóa chữ nếu ngày hiện tại là thứ Năm.

// Hook the get_the_excerpt filter hook, run the function named mfp_Add_Text_To_Excerpt
add_filter(“get_the_excerpt”, “mfp_Add_Text_To_Excerpt”);

// If today is a Thursday, remove the filter from the_excerpt()
if (date(“l”) === “Thursday”) {
remove_filter(“get_the_excerpt”, “mfp_Add_Text_To_Excerpt”);
}

// Take the excerpt, add some text before it, and return the new excerpt
function mfp_Add_Text_To_Excerpt($old_Excerpt)
{
$new_Excerpt = “Excerpt: ” . $old_Excerpt;
return $new_Excerpt;
}
view rawfunction mfp_Add_Text_To_Excerpt($old_Excerpt) hosted with ❤ by GitHub
Bây giờ bạn có kiến thức cơ bản về hook và filter, hãy tạo một plugin WordPress đơn giản thêm link và một trang web trên Admin control panel.

Bước 1 – Lưu plugin WordPress của bạn
Bước đầu tiên để tạo Plugin WordPress là làm folder chứa tất cả các files. Plugins được lưu trong thư mục /wp-content/plugins/. Thư mục bạn cần một tên duy nhất và mô tả để bạn không lẫn lộn với plugin khác. Kết nối tài khoản hosting của bạn với FTP Client. từ Thư mục gốc, chuyển tới wp-content, tới plugins. Bên trong thư mục plugins, tạo một folder mới có tên first-plugin.Hướng Dẫn Plugin WordPress – tạo plugin wordpress vớ FTPĐể dễ quản lý hơn, tốt nhất là nên tách biệt nhiều loại file của plugin WordPress và cho chúng subfolder riêng, hơn là gom tất cả vào một thư mục chính. Khi plugin phát triển và trở nên phức tạp, bạn sẽ dễ kiểm soát hơn vì mọi file có vị trí riêng. Nếu plugin sử dụng custom CSS, bạn tạo CSS Folder và lưu tất cả các file CSS ở đó. Nếu plugin sử dụng Javascript, bạn tạo một folder tên Javascript.

Bước 2 – Tạo file đầu tiên
File đầu tiên trong plugin là một file quan trọng. Nó chứa tất cả thông tin WordPress cần để hiển thị plugin của bạn trong danh sách plugin, cho phép bạn thật sự kích hoạt plugin đó.

Trong folder my-first-plugin, tạo file PHP có tên my-first-plugin.php. Theo kinh nghiệm thức tế, hãy đặt tên file đầu tiên gần giống với tên thư mục, nhưng bạn có thể có bất kỳ tên nào bạn thích. Thêm tag PHP

Hello!

This is my plugin’s first page

view rawPlugin’s First Page hosted with ❤ by GitHub
Khi tạo trang admin, WordPress yêu cầu WordPress recommends kèm theo HTML của riêng bạn với div và cho nó class “wrap”, như bên dưới. Việc này đảm bảo tất cả nội dung phải hiển thị đúng vị trí, như là những trang admin khác. Nếu bạn không đóng gói nó lại như vậy, trang web sẽ trở nên rất lộn xộn.

Quay lại trang danh sách plugin trong WordPress Admin Control Panel và activate plugin này. Khi trang này load, xem cuối trang admin, bạn sẽ thấy link mới có tên “My First Plugin”. Click vào nó, bạn bạn sẽ vào trang admin control panel riêng của bạn!

WordPress Plugin Tutorial – Plugin Created

Kết luận
Chúc mừng, bạn vừa tạo thành công plugin WordPress đầu tiên, thêm link vào admin menu và hiển thị một trang Admin Control Panel hoàn toàn mới! Nó chưa nhiều, nhưng đây là bước đầu tiên để làm plugin wordpress. Từ đây, bạn có thể xây dựng và mở rộng WordPress theo bất kỳ cách nào bạn muốn. Để tìm hiểu thêm các bài hướng dẫn khác, hãy xem qua bài hướng dẫn WordPress của chúng tôi.

Đánh giá post