Hướng dẫn tạo một Plugin đơn giản bằng WordPress – TUAN DC

5/5 – (3 bình chọn)

Các bài hướng dẫn về WordPress trước đây mình đa phần hướng dẫn các bạn viết thẳng lên file functions.php. Tuy nhiên cách làm đó chỉ là để hướng dẫn bạn nhanh hơn thôi, còn khi làm thực tế thì bạn nên tách nó ra thành các Plugin và gắn vào. Bạn còn có thể sử dụng cho các theme khác nữa. Thật ra làm Plugin không khó, nó cũng giống như việc bạn viết hàm trong trong file functions vậy. Bài viết sau đây sẽ chỉ rõ cho bạn biết cách tạo một Plugin là như thế nào.

 Action hook và Fillter hook trong WordPress

Nếu bạn đã theo dõi nhiều bài viết lập trình themes wordpress của mình chắc chắn bạn đã thấy mình có sử dụng những hook này rất nhiều. Trong bài: Tìm hiểu về Action Hook, Filter Hook và cách sử dụng chúng trong WordPress mình đã có nói rất rõ về hai khái niện này rồi nên mình sẽ không nhắc lại ở đây nữa.

Ở đây mình sẽ nói về vai trò của hai cái “móc” này đối với Pluign. Khi bạn sử dụng hook chính là lúc bạn can thiệp vào các điểm neo của wordpress đã tạo sẵn, tùy biến nó theo sự mong muốn của mình. Bạn sử dụng Action hook khi bạn muốn tạo ra một thứ gì đó, thay đổi thứ đó, ví dụ như custom post type, tạo hành động gửi mail,… Trong khi đó Fillter hook được sử dụng để lọc nội dung là chủ yếu. Giả sử như Plugin muốn chèn các link nofollow cho link out thì nó phải sử dụng cái hook này để lọc nội dung trước khi đưa ra ngoài…. Tuy nhiên không phải lúc nào Plugin cũng sử dụng hook, ví dụ tạo một plugin sau đây sẽ không sử dụng hook nào.

Tạo các thư mục và file plugin

Bây giờ mình sẽ truy cập vào mục "wp-content\plugins", tạo thêm một thư mục có tên "tuandc-plugin", bạn có thể đặt tên gì tùy bạn, sau đó mình sẽ tạo ra các mục và một file php như sau:

Tạo file và thư mục cho plugin

Tạo cho hoành tráng vậy thôi chứ mình chỉ sử dụng mỗi mình file tuandc-plugin.php thôi, các thư mục trên có thể bạn không cần.

Bắt đầu viết Plugin Random Posts WordPress

Bây giờ bạn mở file php bạn đã tạo và paste đoạn code sau vào:

<?php
/*
Plugin Name: Random-Post
Plugin URI: https://tuandc.com/
Description: Plugin lấy ngẫu nhiên liên kết các bài viết và hiển thị lên một bài viết cụ thể
Version: 1.0
Author: Tuấn ĐC
Author URI: https://tuandc.com/
License: GPL
*/

Bạn có thể đổi các tên lại cho phù hợp. Bên trên chỉ là một đoạn comment để khai báo Plugin. Nếu bạn có nhiều file php trong mục này thì bạn khai báo đoạn này ở file nào thì WordPress sẽ lấy file đó làm tệp chính.

Bây giờ bạn vào phần Plugin và bạn sẽ thấy một mục plugin mới do bạn tạo xuất hiện.

Plugin mới xuất hiện

Mình sẽ viết một hàm để lấy những bài viết ngẫu nhiên, và mình sẽ add và một cái add_shortcode để sử dụng cho dễ. Code như sau:

function tuandc_rand_posts() {
$args = array(
 'post_type' => 'post',
 'orderby' => 'rand',
 'posts_per_page' => 5,
 );
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
  $string .= '<ul>';
   while ( $the_query->have_posts() ) {
          $the_query->the_post();
          $string .= '<li><a href="'. get_permalink() .'">'. get_the_title() .'</a></li>';
   }
   $string .= '</ul>';
   wp_reset_postdata();
} else {
   $string .= 'no posts found';
}
   return $string;
}
add_shortcode('tuandc-rand-posts','tuandc_rand_posts');

Bây giờ bạn thử mỡ một bài viết và chèn đoạn short code đã tạo vào.

Tạo một bài viết và đặt đoạt shortcode đã tạoKết quả hiển thị

Phần tạo shortcode thì mình đã có bài viết về nó, bạn có thể xem tại: Cách tạo shortcode đơn giản trong WordPress.

Viết Plugin là một việc làm đòi hỏi bạn phải biết code chuyên sâu, đồng thời bạn cũng phải tìm hiểu ở rất nhiều nguồn khác nhau nữa. Bạn có thể viết Plugin cho mình hoặc viết bán cũng được, nhưng để một Plugin có giá trị thì bạn phải nghiên cứu rất nhiều.

Nếu bạn luôn cài đặt plugin này thì bạn chỉ việc nén toàn bộ các thư mục trong plugin thành tệp “zip“, nhớ là phải là "zip" nhé, sau đó vào phần “gói mở rộng” và tải lên là được. Hoặc bạn cũng có thể làm thủ công là tải lên thẳng thư mục plugin cũng được.

Nhưng Plugin cũng chỉ có vậy thôi, không quá phức tạp, tuy nhiên Plugin mà viết như thế này thà viết thẳng vào theme còn hơn, Plugin thì phải cho người ta một nơi tùy chỉnh nữa. Tuy nhiên mình sẽ không viết ở đây nó sẽ trở nên dài bài viết, mình sẽ viết ở bài: Tạo menu và form nhập liệu vào database trong control panel admin wordpress.

Chúc bạn thành công !