آموزش پلاگین نویسی در وردپرس از صفر تا صد – قسمت اول

نوشته شده توسط ۶ سال پیش

پلاگین چیست؟

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

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

از مهمترین عوامل معروفیت و کاربرد وردپرس داشتن پلاگینهای متعدد و کاربردی میباشد.علت تعدد پلاگینها در وردپرس نسبت به سایر سیستمهای مدیریت محتوی سادگی فرایند نوشتن پلاگین در وردپرس میباشد.وقتی شما پلاگینی را نصب میکنید پلاگین مورد نظر در آدرس wp-content/plugins قرار میگیرد که شما با رفتن به این آدرس میتوانید لیست پلاگینهایی که روی وردپرس شما قرار گرفته را ببینید.برای ایجاد یک پلاگین در وردپرس شما نیاز دارید یک پوشه در این آدرس ایجاد کنید بهتر است نام پوشه هم نام پلاگین شما باشد. قرار دادن پیشوند wp- یا wp_ اختیاری میباشد.برای شروع ما نام پلاگین خود را my_plugin انتخاب میکنیم. و یک پوشه در آدرس wp-content/plugins ایجاد میکنیم بنام my_plugin آدرس پلاگین ما به صورت زیر میشود wp-content/plugins/my_plugin
در مرحله بعد یک فایل با پسوند php درون این پوشه ایجاد میکنیم بنام my_plugin.php . در مرحله بعد ساختار پوشه بندی پلاگین را ایجاد میکنیم.هر توسعه دهنده ای پوشه بندی خود را ایجاد میکند ولی به طور عموم نیاز به یک سری پوشه ها دارید:
My_plugin
۱. Admin : فایلهای صفحات ادمین
۲. Asset : فایلهای مورد استفاده پلاگین مانند عکسها-استایلها-اسکریپتها
۲.۱. Imgs : برای قرار دادن عکسها
۲.۲. Js : برای قرار دادن فایلهای جاوا اسکریپت
۲.۳. Css : برای قرار دادن فایلهای استایل
۳. Libs : قرار دادن فایلهای کتابخانه
۴. Ajax : قرار دادن کدهای ایجکس

هدر پلاگین:

خب حالا نوبت به نوشتن هدر پلاگین میکنیم فایل my_plugin.php را باز میکنیم.برای شروع باید اطلاعات عمومی پلاگین را وارد میکنیم این اطلاعات شامل ، اطلاعات زیر میباشد.
۱. Plugin Name:نام پلاگین
۲. Plugin URI : آدرس سایت پلاگین
۳. Author Name : نام نویسنده پلاگین
۴. AuthorURI : آدرس سایت نویسنده
۵. Version : ورژن پلاگین
۶. Description : توضیحات پلاگین
۷. Text Domain : عنوان مورد استفاده برای ایجاد فایلهای ترجمه در پلاگینهای چند زبانه
۸. Domain Path : آدرس پوشه فایلهای ترجمه در پلاگینهای چند زبانه.
۹. License : لیسانس پلاگین .عموما توسعه دهندها از لیسانس GPL2 یا compatible with the GPL2 استفاده میکنند البته شما میتوانید یک لایسنس مختص به خود ایجاد کنید که در انتها یک نمونه برای شما قرار خواهیم داد.
۱۰. License URI : آدرس لیسانس پلاگین. در زیر آدرس ۲ نمونه لایسنس که در بالا ذکر شد اورده شده

http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses

هر پلاگین حداقل به Plugin Name برای معرفی نام پلاگین به وردپرس نیاز دارد افزودن سایر مقادیر اختیازی میباشد.
به مثال زیر توجه کنید:

/*
Plugin Name: WordPress Plugin
Plugin URI: https://developer.wordpress.org/plugins/the-basics/
Description: Basic WordPress Plugin Header Comment
Version: 1.0.0.0
Author: mobin ghasempoor
Author URI: https://profiles.wordpress.org/lord_viper
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: my_lang
Domain Path: /languages/
*/

یک نمونه لایسنس اختصاصی :

/* Copyright YEAR نام نویسنده (email : ایمیل نویسنده)
نام پلاگین is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
any later version.
نام پلاگین is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with نام پلاگین; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/

افزودن توابع نصب وردپرس

کدنویسی وردپرس
register_activation_hook : این تابع در زمان نصب پلاگین اجرا میشود و استفاده از این تابع اختیاری میباشد.یعنی هنگامی که شما نیاز به انجام کاری در هنگام نصب پلاگین دارید مثلا ایجاد جداول مورد نیاز پلاگین در بانک اطلاعاتی یا ایجاد یک کرون جاب(زمان بندی رویدادها در وردپرس) برای اجرای زمانبندی شده یا ایجاد نقش برای کاربری. شما حتما باید از این تابع استفاده کنید.

function pluginprefix_install() {
//ایجاد جدول
global $wpdb;
require_once(ABSPATH.'wp-admin/includes/upgrade.php');
$create_table = "
CREATE TABLE {$wpdb->prefix}wpp_db (
id int(11) NOT NULL AUTO_INCREMENT,
question varchar(512) COLLATE utf8_persian_ci NOT NULL,
answer varchar(5000) COLLATE utf8_persian_ci NOT NULL,
correct_msg varchar(4096) COLLATE utf8_persian_ci NOT NULL,
false_msg varchar(4096) COLLATE utf8_persian_ci NOT NULL,
PRIMARY KEY (id)
) CHARSET=utf8 COLLATE=utf8_persian_ci;
" ;
dbDelta($create_table);
//ایجاد نقش
add_role( 'student', 'Student', array( 'read' => true, 'level_0' => true ) );
}
register_activation_hook( __FILE__, 'pluginprefix_install' );

توجه!!

برای ایجاد جدولها در پلاگین توسط وردپرس تمامی کدهای جدول را درون یک مقدار قرار میدهیم و به تابع dbDelta ارسال میکنیم.برای استفاده از این تابع حتما باید فایل upgrade.php’ را مانند مثال بالا فراخوانی کنیم.

register_uninstall_hook : این تابع در زمان غیر فعال کردن پلاگین اجرا میشود و استفاده از این تابع اختیاری میباشد.یعنی هنگامی که شما نیاز به انجام کاری در هنگام غیر فعال کردن پلاگین دارید مثلا حذف جداول ایجاد شده در بانک اطلاعاتی یا پاک کردن کرون جاب یا حذف یک نقش کاربری. شما حتما باید از این تابع استفاده کنید.

function pluginprefix_deactivation() {
// حذف نقش
remove_role( 'student');
}
register_deactivation_hook( __FILE__, 'pluginprefix_deactivation' );

قسمت بعد ایجاد و مدیریت منو و برگه در ادمین

مبین قاسمپور


ارسال دیدگاه شما

دیدگاه های ارسال شده برای این مطلب
  1. هادی گفت:

    سلام. خیلی توضیحات گویا و خوبی بود. از مقاله تون بسیار متشکرم.

  2. فاطمه گفت:

    سلام ممنون از توضیحاتتون من این کد رو نوشتم اما جدولی ساخته نشد برام.
    و اینکه در کد CREATE TABLE {$wpdb->prefix}wpp_dbبه -> اشکال میگیره.

  3. احمد سیفی گفت:

    قسمت بعدی رو کی قرار میدین ؟

    این صفحه رو چطور میشه وردپرس کرد ؟
    https://www.azangoo.ir/owghat

  4. سارا گفت:

    سلام تو وب سایتم میخوام یه جدول ایجاد کنم آیا میتونید راهنماییم کنید

  5. رسول گفت:

    سلام
    ممنون از آموزش
    من میخام به صورت حرفه ای از صفر تا صد به حدی برسم که مثل سایت های فروش قالب و افزونه ،قالب و افزونه فارسی کنم و اونها رو گسترش بدم و حتی پلاگینهای جدید از صفر بنویسم
    برای این کار باید چی کار کنم
    آیا باید از صفر اچ تی ام ال . سی اس اس.جاوا.پی اچ پی رو یاد بگیرم و بعد برم سراغ پلاگین نویسی
    یا این که اول دورهای مربوط به وبمستران و هوشمند رو یاد بگیریم و دیجیتال مارکتینگ که شامل ابزارهای سئو و… میشه
    یا این که اول با توجه به اطلاعاتی که دارم سایتی رو راه اندازی کنم و به مرور دیجیتال ماکتینک رو یاد بگیرم و بعد هم برم سراغ برنامه نوسی و پلاگین نویسی

    • برای نوشتن قالب یا پلاگین شما باید تسلط کافی به زبان html-css-php و در قدم بعد javascript یا jquery داشته باشید
      اینکه بخواهید توسعه دهنده بشید یا وبمستر بشید ۲ مقوله جدا از هم هست و به خودتون بستگی داره

  6. حمید گفت:

    سلام و وقت بخیر
    من یک پلاگین نوشتم اما می خوام این پلاگین فقط توی سایت اعمال بشه و ارتباطی به api نداشته باشه.
    آیا راهی وجود داره ؟

  7. سارا گفت:

    مفید و مختصر

  8. فهیمه گفت:

    عالی بود مهندس