December 4, 2021

Hướng dẫn tạo plugin WordPress đơn giản

WordPress là nền tảng web mã nguồn mở phổ biến nhất thế giới hiện nay, với hàng trăm website sử dụng. Ưu điểm của wordpress là dễ dàng cài đặt và sử dụng, bất cứ ai cũng có thể sở hữu cho mình một trang web đơn giản, đẹp mắt mà không cần biết nhiều về code. Trong bài biết này mình sẽ hướng dẫn mọi người cách để tạo 1 plugin wordpress, qua đó bạn sẽ hiểu và phát triển nó thành các plugin hữu ích khác, bắt đầu ngay thôi

1. Tạo Thư mục và Tệp

Tất cả các plugin đều nằm trong thư mục  wp-content/plugins/ , vì vậy bạn hãy tạo customplugin

Trong thư mục này, tạo 3 tệp –

  1. customplugin.php – Đây là tệp chính xác định chi tiết plugin, tạo bảng MySQL mới về kích hoạt plugin, menu và menu con.
  2. displaylist.php – Liệt kê các bản ghi từ bảng MySQL.
  3. addentry.php – Thêm bản ghi mới trong bảng MySQL.

Tạo một thư mục khác có tên imgtrong thư mục customplugin/ để chứa các biểu tượng, hình ảnh của plugin.

Cách tạo Plugin WordPress đơn giản


2. Xử lý file customplugin.php

Đây là file để xác định các thông tin của plugin như: Tên, Uri, mô tả, phiên bản, tác giả, uri của tác giả….

Trình tự các bước như sau:

Tạo bảng mới

Để tạo bảng mới, chúng ta sẽ khởi tạo function customplugin_table()sử dụng biếnglobal $wpdb

Đặt tên bảng với tiền tố prefix và viết câu lệnh truy vấn tạo bảng

Requid file upgrade.phpvà chuyển câu lệnh $sqlvào function dbDelta()để tạo bảng

Pass customplugin_tablebằng cách sử dụng register_activation_hook().

Thêm Menu và Submenu

Tạo function customplugin_menu()

Để thêm menu, sử dụng function add_menu_page()

add_menu_page( $page_title, $menu_title, $capability, $menu_slug, $function, $icon_url, $position )

Tạo một Custom Pluginmenu.

add_menu_page("Custom Plugin", "Custom Plugin","manage_options", "myplugin", "displayList",plugins_url('/customplugin/img/icon.png'));

Để thêm function add_submenu_page()gọi submenu

add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function )

Tôi tạo hai menu con – All entriesvà Add new Entry.

Tạo hai function – displaylist()và addEntry()nơi bao gồm các tệp. Tên hàm này được sử dụng trong method add_submenu_page()

add_submenu_page("myplugin","All Entries", "All entries","manage_options", "allentries", "displayList");
add_submenu_page("myplugin","Add new Entry", "Add new Entry","manage_options", "addnewentry", "addEntry");

Gọi action hook  customplugin_menu.

add_action("admin_menu", "customplugin_menu");

Code hoàn thiện như sau

<?php
/*
   Plugin Name: Custom plugin
   Plugin URI: https://korakora.org/
   description: A simple custom plugin
   Version: 1.0.0
   Author: Yogesh Singh
   Author URI: https://korakora.org/
*/

// Create a new table
function customplugin_table(){

  global $wpdb;
  $charset_collate = $wpdb->get_charset_collate();

  $tablename = $wpdb->prefix."customplugin";

  $sql = "CREATE TABLE $tablename (
  id mediumint(11) NOT NULL AUTO_INCREMENT,
  name varchar(80) NOT NULL,
  username varchar(80) NOT NULL,
  email varchar(80) NOT NULL,
  PRIMARY KEY  (id)
  ) $charset_collate;";

  require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
  dbDelta( $sql );

}
register_activation_hook( __FILE__, 'customplugin_table' );

// Add menu
function customplugin_menu() {

    add_menu_page("Custom Plugin", "Custom Plugin","manage_options", "myplugin", "displayList",plugins_url('/customplugin/img/icon.png'));
    add_submenu_page("myplugin","All Entries", "All entries","manage_options", "allentries", "displayList");
    add_submenu_page("myplugin","Add new Entry", "Add new Entry","manage_options", "addnewentry", "addEntry");

}
add_action("admin_menu", "customplugin_menu");

function displayList(){
  include "displaylist.php";
}

function addEntry(){
  include "addentry.php";
}

3. File displaylist.php

Tìm nạp các bản ghi từ bảng dữ liệu customplugin và danh sách trong <table>. Trong <tr>cũng tạo một liên kết Xóa nơi vượt qua ?page=allentries&delid=”.$id.”

Khi nhấn xóa liên kết thực hiện truy vấn DELETE trên $_GET['delid'].

Mã đã hoàn thành

<?php

global $wpdb;
$tablename = $wpdb->prefix."customplugin";

// Delete record
if(isset($_GET['delid'])){
  $delid = $_GET['delid'];
  $wpdb->query("DELETE FROM ".$tablename." WHERE id=".$delid);
}
?>
<h1>All Entries</h1>

<table width='100%' border='1' style='border-collapse: collapse;'>
  <tr>
   <th>S.no</th>
   <th>Name</th>
   <th>Username</th>
   <th>Email</th>
   <th>&nbsp;</th>
  </tr>
  <?php
  // Select records
  $entriesList = $wpdb->get_results("SELECT * FROM ".$tablename." order by id desc");
  if(count($entriesList) > 0){
    $count = 1;
    foreach($entriesList as $entry){
      $id = $entry->id;
      $name = $entry->name;
      $uname = $entry->username;
      $email = $entry->email;

      echo "<tr>
      <td>".$count."</td>
      <td>".$name."</td>
      <td>".$uname."</td>
      <td>".$email."</td>
      <td><a href='?page=allentries&delid=".$id."'>Delete</a></td>
      </tr>
      ";
      $count++;
   }
 }else{
   echo "<tr><td colspan='5'>No record found</td></tr>";
 }
?>
</table>

4. File addentry.php

Tạo một <form >trong đó có 3 thẻ input <input type='text' >và nút gửi.

Trong<form > khi ấn Submit thì sẽ đọc các giá trị và thực hiện chèn vào database

Mã đã hoàn thành

<?php

global $wpdb;

// Add record
if(isset($_POST['but_submit'])){

  $name = $_POST['txt_name'];
  $uname = $_POST['txt_uname'];
  $email = $_POST['txt_email'];
  $tablename = $wpdb->prefix."customplugin";

  if($name != '' && $uname != '' && $email != ''){
     $check_data = $wpdb->get_results("SELECT * FROM ".$tablename." WHERE username='".$uname."' ");
     if(count($check_data) == 0){
       $insert_sql = "INSERT INTO ".$tablename."(name,username,email) values('".$name."','".$uname."','".$email."') ";
       $wpdb->query($insert_sql);
       echo "Save sucessfully.";
     }
   }
}

?>
<h1>Add New Entry</h1>
<form method='post' action=''>
  <table>
    <tr>
      <td>Name</td>
      <td><input type='text' name='txt_name'></td>
    </tr>
    <tr>
     <td>Username</td>
     <td><input type='text' name='txt_uname'></td>
    </tr>
    <tr>
     <td>Email</td>
     <td><input type='text' name='txt_email'></td>
    </tr>
    <tr>
     <td>&nbsp;</td>
     <td><input type='submit' name='but_submit' value='Submit'></td>
    </tr>
 </table>
</form>

5. Kích hoạt Plugin

  • Đăng nhập vào Bảng điều khiển quản trị WordPress của bạn.
  • Điều hướng đến Plugin.
  • Tìm plugin và nhấp vào Kích hoạt.

Cách tạo Plugin WordPress đơn giản

  • Một menu mới đã được thêm vào Thanh bên.

Cách tạo Plugin WordPress đơn giản

Chúc các bạn thành công.

Korakora

Chia sẻ kiến thức cho mọi người là niềm vui của mình

View all posts by Korakora →

Leave a Reply

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

icons8-exercise-96 challenges-icon chat-active-icon