آموزش ساخت افزونه اختصاصی وردپرس از صفر تا صد
افزونههای وردپرس یکی از قدرتمندترین ابزارها برای توسعهدهندگان هستند که به شما امکان میدهند تا قابلیتهای جدید را به وبسایت خود اضافه کنید. این آموزش به شما کمک میکند تا یک افزونه اختصاصی از صفر بسازید، از ساختار پایه تا پیادهسازی عملکردهای پیشرفته.
مفاهیم اولیه در مورد افزونه وردپرس
افزونههای وردپرس یک ساختار فایلی هستند که به وبسایت وردپرس متصل میشوند و قابلیتهای جدید را اضافه میکنند. افزونهها معمولاً شامل یک فایل اصلی (main plugin file) و فایلهای دیگر مانند فایلهای CSS، JS و فایلهای کلاسهای PHP هستند.
نکات مهم قبل از شروع
- فایل اصلی افزونه باید دارای یک نظریه وردپرس باشد.
- ساختار پوشهها باید منظم و سازگار با استانداردهای وردپرس باشد.
- نام فایل اصلی باید با نام افزونه مطابقت داشته باشد.
ساختار اولیه یک افزونه وردپرس
برای شروع، یک پوشه جدید در مسیر /wp-content/plugins/ بسازید و فایل اصلی افزونه را به نام my-custom-plugin.php قرار دهید.
<?php
/**
* Plugin Name: My Custom Plugin
* Description: A custom plugin for WordPress
* Version: 1.0.0
* Author: Your Name
*/
// Prevent direct access to the file
if (!defined('ABSPATH')) {
exit;
}
در این کد، ما با استفاده از نظریه وردپرس (Plugin Name) یک افزونه جدید را تعریف کردهایم. همچنین با استفاده از if (!defined('ABSPATH')) exit; از دسترسی مستقیم به فایل جلوگیری کردهایم.
ساختار پوشههای افزونه
در ساختار پوشهای یک افزونه، معمولاً چندین پوشه و فایل وجود دارد:
| پوشه/فایل | توضیح |
|---|---|
my-custom-plugin.php | فایل اصلی افزونه که شامل نظریه وردپرس است. |
includes/ | پوشهای برای فایلهای کلاسها و ماژولها. |
assets/css/ | پوشهای برای فایلهای CSS. |
assets/js/ | پوشهای برای فایلهای JavaScript. |
افزودن عملکردهای اصلی
در این مرحله، ما میخواهیم یک عملکرد ساده را به افزونه اضافه کنیم. این عملکرد میتواند یک تابع ساده باشد که در صفحه اصلی وبسایت نمایش داده شود.
function my_custom_plugin_display() {
echo '<p>Hello from My Custom Plugin!</p>';
}
add_action('wp_footer', 'my_custom_plugin_display');
در این کد، ما یک تابع my_custom_plugin_display ایجاد کردهایم که یک پاراگراف ساده را در پاورقی صفحه نمایش میدهد. سپس با استفاده از add_action، این تابع را به رویداد wp_footer متصل کردهایم.
افزودن صفحه تنظیمات
برای افزودن صفحه تنظیمات، باید ابتدا یک نمایشگر برای تنظیمات ایجاد کنیم:
function my_custom_plugin_settings_page() {
add_options_page(
'My Custom Plugin Settings',
'Custom Plugin',
'manage_options',
'my-custom-plugin',
'my_custom_plugin_settings_callback'
);
}
add_action('admin_menu', 'my_custom_plugin_settings_page');
function my_custom_plugin_settings_callback() {
echo '<h2>My Custom Plugin Settings</h2>';
echo '<p>Here you can configure your plugin settings.</p>';
}
در این کد، ما با استفاده از add_options_page یک صفحه تنظیمات جدید در پنل مدیریت افزودهایم. سپس یک تابع کالبک به عنوان محتوای این صفحه تعیین کردهایم.
افزودن فرم تنظیمات
برای نمایش فرم تنظیمات، باید یک فرم HTML را در تابع کالبک قرار دهیم:
function my_custom_plugin_settings_callback() {
settings_fields('my_custom_plugin_settings_group');
do_settings_sections('my-custom-plugin');
echo '<form method="post" action="options.php">';
echo '<table class="form-table">';
echo '<tr><th scope="row">Custom Setting</th><td>';
echo '<input type="text" name="custom_setting" value="' . esc_attr(get_option('custom_setting')) . '" />';
echo '</td></tr>';
echo '</table>';
submit_button();
echo '</form>';
}
در این کد، ما یک فرم HTML را با استفاده از settings_fields و do_settings_sections ساختهایم. همچنین فیلد متنی برای تنظیمات ساده اضافه کردهایم.
ذخیره دادهها در بانک اطلاعاتی
برای ذخیره دادهها، باید یک فرم را با استفاده از register_setting ثبت کنیم:
function my_custom_plugin_settings_init() {
register_setting('my_custom_plugin_settings_group', 'custom_setting');
}
add_action('admin_init', 'my_custom_plugin_settings_init');
در این کد، ما با استفاده از register_setting، تنظیمات دلخواه را در بانک اطلاعاتی وردپرس ثبت کردهایم. این تنظیمات در زمان ذخیره شدن به صورت خودکار ذخیره میشوند.
افزودن یک پست سفارشی
برای افزودن یک پست سفارشی، باید یک نوع پست را ثبت کنیم:
function my_custom_plugin_register_post_type() {
$args = array(
'label' => 'Custom Post',
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail'),
);
register_post_type('custom_post', $args);
}
add_action('init', 'my_custom_plugin_register_post_type');
در این کد، ما با استفاده از register_post_type یک نوع پست جدید به نام custom_post ثبت کردهایم. این نوع پست دارای عنوان، ویرایشگر و تصویر بندانگشتی است.
افزودن سیستم امنیتی
برای افزودن سیستم امنیتی به افزونه، میتوانید از تابع wp_nonce_field استفاده کنید:
function my_custom_plugin_nonce_check() {
if (!wp_verify_nonce($_POST['my_nonce'], 'my_action')) {
wp_die('Security check failed');
}
}
add_action('admin_post_my_action', 'my_custom_plugin_nonce_check');
در این کد، ما با استفاده از wp_verify_nonce چک کردهایم که درخواست امنیتی معتبر است. اگر ناموفق بود، خطایی را نمایش میدهیم.
بهینهسازی و تست
برای بهینهسازی و تست افزونه، میتوانید:
- فایلهای CSS و JS را به صورت استاندارد لود کنید.
- استفاده از
wp_enqueue_scriptوwp_enqueue_style. - از تستهای ساده برای تضمین عملکرد صحیح استفاده کنید.
نتیجهگیری
در این آموزش، یک افزونه وردپرس از صفر تا صد ساخته شده است. افزونه شامل ساختار پایه، عملکردهای اصلی، صفحه تنظیمات، فرمهای دادهای، نوع پست سفارشی و سیستم امنیتی بوده است.
آیا این مطلب برای شما مفید بود ؟




