آموزش ساخت پلاگین برای وردپرس قسمت اول

آموزش ساخت پلاگین برای وردپرس قسمت اول

خوب نبودخوبخیلی خوبعالیخیلی عالی (1 votes, average: 5٫00 out of 5)

در این آموزش سعی داریم به صورت ساده و روان ساخت یک پلاگین در وردپرس را به شما آموزش دهیم. پلاگین وردپرس یک برنامه است که با زبان پی اچ پی نوشته می‌شود، و دارای فانکشن‌های اختصاصی شما یا فانکشن‌های وردپرس است.

ساختار فولدر های پلاگین:

معمولا پلاگین‌ها ساختاری مانند تصویر زیر دارند.

آموزش ساخت پلاگین

به یاد داشته باشد نام پلاگین شما باید منحصر به فرد باشد، نام پوشه‌ی پلاگین هم نام پلاگینتان باشد. به طور مثال myplugin.php

حال چگونه پلاگین را بنویسیم، ابتدا به فایل myplugin.php مراجعه کرده و هدر را می نویسیم.

اجزای Header :

اولین قسمت یک پلاگین هدر آن است، در ساده‌ترین حالت هدر فقط دارای نام پلاگین شماست.

اما به طور کلی و استاندارد هدر دارای اجزای زیر است:

  1. نام پلاگین Plugin Name: نام پلاگین شما، که این نام در لیست پلاگین‌های وردپرس نیز نمایش داده می‌شود.
  2. آدرس منبع پلاگین Plugin URI: آدرس صفحه اصلی پلاگین شما، جایی که می‌توان پلاگین شما را برای دانلود در اختیار داشت که می‌تواند سایت wordpress.org و یا آدرس وب‌سایت شما باشد.
  3. توضیحات Description: توضیحات کوتاهی در مورد پلاگین که در صفحه‌ی ادمین وردپرس نمایش داده می‌شود، به یاد داشته باشید این توضیحات کمتر از ۱۴۰ کاراکتر باشد.
  4. ورژن Version: ورژن فعلی پلاگین شما
  5. نویسنده Author: نام نویسنده‌ی پلاگین، اگر بیش از یک برنامه نویس در نوشتن پلاگین همکاری کرده اند می‌توانید مانند یک لیست نام آنها را بنویسید.
  6. آدرس نویسنده Author URI: منظور وب‌سایت یا وبلاگ برنامه نویسان می‌باشد، حتی می‌تواند آدرس پروفایل آنها در وردپرس باشد.
  7. مجوز License: مجوز استفاده از پلاگین شما، مانند مجوز آزاد GPL2
  8. آدرس منبع مجوز License URI: آدرس سایت یا وبلاگی که توضیحات بیشتری در مورد مجوز شما ارائه می‌دهد.
  9. Text Domain
  10. Domain Path: قسمتی است که وردپرس استفاده می‌کند تا بتواند اطلاعات بیشتری در مورد پلاگین شما بیابد مانند ترجمه پلاگین شما و …

بهتر است موارد یک تا ۷ حتما نوشته شود.

حال چگونه هدر را در فایل پی اچ پی خود بنویسم؟

فایل myplugin.php را باز کرده و این کد را می نویسیم:

<?php
/*
Plugin Name: salamPlugin 
Plugin URI: http:/www.darkoobwe.com
Description: in yek plugin sade baraye test ast 
Version: 1.2
Author: Pouria Parhami
Author URI: http:/www.darkoobweb.com
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Domain Path: /languages
Text Domain: my-toolset
*/
?>

به این شکل هم می‌توانید به صورت ساده و مختصر بنویسید:

<?php
/*
Plugin Name: salamPlugin
*/
?>

اکنون پلاگین شما قابل نصب می‌باشد. حال بیایید با هم یک پلاگین ساده بنویسم. فرض کنید می‌خواهیم پلاگینی بنویسیم که از طریق یک فرم مشخصات کاربر را بگیرد و در دیتابیس ذخیره کند. دقت داشته باشید که شما برای نوشتن پلاکین وردپرس باید با زبان پی اچ پی آشنایی داشته باشید.

در این پلاگین ساختار پوشه‌ها اینگونه است. دقت کنید که این ساختار سلیقه ای ست اما بهتر است اینگونه باشد.

آموزش ساخت پلاگین

فایل my_reservation را باز می‌کنیم و هدر را می‌نویسیم:

<?php
/*
Plugin Name: My Reservation Form
Plugin URI: http://darkoobweb.com
Description: Yek plugin reserv besyaaar saaade
Version: 1.0
Author: Pouria 
Author URI: http://darkoobweb.com
*/
?>

حالا باید جلوی دسترسی مستقیم به پلاگین را بگیریم، مانند زیر:

if(!defined('ABSPATH')){exit;}

برای اینکه بتوانیم به پوشه‌ها و دیگر فایل‌ها دسترسی داشته باشیم از plugin_dir_url وplugin_dir_path استفاده می‌کنیم ، در فایل اصلی پلاگینمان می‌توانیم آنها را با define معرفی کنیم بدین شکل:

define( 'MY_RRESERVATION_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'MY_RESERVATION_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );

سپس آدرس دو فایل php که می‌خواهیم در این صفحه با آنها کار کنیم را می‌دهیم:

require_once (MY_RESERVATION_PLUGIN_DIR.'/include/class-my-plugin-table.php');
//Create the admin menu page and show result on it
require_once (MY_RESERVATION_PLUGIN_DIR.'/admin/my_plugin_admin_result.php');

قسمت اول نامی که در define در نظر گرفتیم و قسمت دوم آدرس فایل مورد نظر. ما می‌خواهیم در هنگام فعال شدن شدن پلاگین جدولی در دیتابیس ایجاد شود برای این کار از هوک register_activation_hook به شکل زیر استفاده می‌کنیم.

register_activation_hook((__FILE__),array('my_plugin_table','my_plugin_create_db'));

اولین رشته نام کلاس و دومین رشته نام فانکشن مورد نظر است. این کلاس و فانکشن را در مرحله بعد در پوشه include خواهیم ساخت. در مراحل بعد در پوشه public فایل php خواهیم ساخت که در آن فرم مورد نظر خود را که می‌خواهیم به کار بر نشان دهیم می‌سازیم.

حال می‌خواهیم فانکشنی بنویسیم تا در هر صفحه از وردپرس که خواستیم بتوانیم فرم را اضافه کنیم برای این کار به این شکل عمل می‌کنیم.

function my_plugin_information_form(){
require_once (MY_RESERVATION_PLUGIN_DIR.'/public/my_plugin_form.php');
}

برای اضافه کردن جاوااسکریپت‌ها و سی اس اس ‌ها به این شکل عمل می‌کنیم:

function my_plugin_load_javascriptsandcss()
{
wp_register_script('my_plugin_reservation_form_javascript', plugins_url('js/my_plugin_reservation_form_javascript.js', __FILE__), array(), '1.1', true);
wp_enqueue_style('my_plugin_reservation_style', plugins_url('css/my_plugin_reservation_stylesheet.css', __FILE__),array(),'1.0',false);
wp_enqueue_script('my_plugin_reservation_form_javascript');
}
add_action('wp_enqueue_scripts', 'my_plugin_load_javascriptsandcss');

یک فانکشن با نام دل خواه ایجاد می‌کنیم و از دستورات wp_register_script ، wp_enqueue_style و wp_enqueue_script استفاده کرده سپس از هوک add_action استفاده می‌کنیم.

رشته اول wp_enqueue_scripts متعلق به وردپرس و رشته دوم نام فانکشن ما می‌باشد.

فایل my_reservation.php به صورت کلی به شکل زیر می‌شود:

<?php
/*
Plugin Name: My Reservation Form
Plugin URI: http://darkoobweb.com
Description: Yek plugin reserv besyaaar saaade
Version: 1.0
Author: Pouria
Author URI: http://darkoobweb.com
*/

if(!defined('ABSPATH')){exit;}

define( 'MY_RRESERVATION_PLUGIN_URL', plugin_dir_url( __FILE__ ) );
define( 'MY_RESERVATION_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
//Include the page in need use.
//Create table in db
require_once (MY_RESERVATION_PLUGIN_DIR.'/include/class-my-plugin-table.php');
//Create the admin menu page and show result on it
require_once (MY_RESERVATION_PLUGIN_DIR.'/admin/my_plugin_admin_result.php');

//When hook is activate do this function first.
register_activation_hook((__FILE__),array('my_plugin_table','my_plugin_create_db'));

//This function put the form any where u want if plugin is active.
function my_plugin_information_form(){
require_once (MY_RESERVATION_PLUGIN_DIR.'/public/my_plugin_form.php');
}
//Register and load style's and script's
function my_plugin_load_javascriptsandcss()
{
wp_register_script('my_plugin_reservation_form_javascript', plugins_url('js/my_plugin_reservation_form_javascript.js', __FILE__), array(), '1.1', true);
wp_enqueue_style('my_plugin_reservation_style', plugins_url('css/my_plugin_reservation_stylesheet.css', __FILE__),array(),'1.0',false);
wp_enqueue_script('my_plugin_reservation_form_javascript');
}
add_action('wp_enqueue_scripts', 'my_plugin_load_javascriptsandcss');
?>

در قسمت بعد فایل class-my-plugin-table.php و my_plugin_form.php را خواهیم ساخت.

پوریا پرهامی

پوریا پرهامی هستم، چند سالی هست که در مجموعه دارکوب وب فعالیت می‌کنم. عمده‌ی فعالیت من در زمینه برنامه نویسی هستش. همچنین به هوش مصنوعی و آموزش زبان‌های برنامه نویسی علاقه دارم.

[yuzo_related]

خبرنامه دارکوب وب

با عضویت در خبرنامه دارکوب وب، هر هفته یک ایمیل از آخرین مقالات و تخفیفات هیجان انگیز ما مطلع شوید.

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.