پلاگین چیست؟
قطعه کدهای کوچک یا بزرگی میباشد که در برنامه اصلی نصب میشوند و قابلیت یا قابلیتهایی را به آن اضافه میکنند.
از مهمترین عوامل معروفیت و کاربرد وردپرس داشتن پلاگینهای متعدد و کاربردی میباشد.علت تعدد پلاگینها در وردپرس نسبت به سایر سیستمهای مدیریت محتوی سادگی فرایند نوشتن پلاگین در وردپرس میباشد.وقتی شما پلاگینی را نصب میکنید پلاگین مورد نظر در آدرس wp-content/plugins قرار میگیرد که شما با رفتن به این آدرس میتوانید لیست پلاگینهایی که روی وردپرس شما قرار گرفته را ببینید.برای ایجاد یک پلاگین در وردپرس شما نیاز دارید یک پوشه در این آدرس ایجاد کنید بهتر است نام پوشه هم نام پلاگین شما باشد. قرار دادن پیشوند wp- یا wp_ اختیاری میباشد.برای شروع ما نام پلاگین خود را my_plugin انتخاب میکنیم. و یک پوشه در آدرس wp-content/plugins ایجاد میکنیم بنام my_plugin آدرس پلاگین ما به صورت زیر میشود wp-content/plugins/my_plugin
در مرحله بعد یک فایل با پسوند php درون این پوشه ایجاد میکنیم بنام my_plugin.php . در مرحله بعد ساختار پوشه بندی پلاگین را ایجاد میکنیم.هر توسعه دهنده ای پوشه بندی خود را ایجاد میکند ولی به طور عموم نیاز به یک سری پوشه ها دارید:
My_plugin
1. Admin : فایلهای صفحات ادمین
2. Asset : فایلهای مورد استفاده پلاگین مانند عکسها-استایلها-اسکریپتها
2.1. Imgs : برای قرار دادن عکسها
2.2. Js : برای قرار دادن فایلهای جاوا اسکریپت
2.3. Css : برای قرار دادن فایلهای استایل
3. Libs : قرار دادن فایلهای کتابخانه
4. Ajax : قرار دادن کدهای ایجکس
هدر پلاگین:
خب حالا نوبت به نوشتن هدر پلاگین میکنیم فایل my_plugin.php را باز میکنیم.برای شروع باید اطلاعات عمومی پلاگین را وارد میکنیم این اطلاعات شامل ، اطلاعات زیر میباشد.
1. Plugin Name:نام پلاگین
2. Plugin URI : آدرس سایت پلاگین
3. Author Name : نام نویسنده پلاگین
4. AuthorURI : آدرس سایت نویسنده
5. Version : ورژن پلاگین
6. Description : توضیحات پلاگین
7. Text Domain : عنوان مورد استفاده برای ایجاد فایلهای ترجمه در پلاگینهای چند زبانه
8. Domain Path : آدرس پوشه فایلهای ترجمه در پلاگینهای چند زبانه.
9. License : لیسانس پلاگین .عموما توسعه دهندها از لیسانس GPL2 یا compatible with the GPL2 استفاده میکنند البته شما میتوانید یک لایسنس مختص به خود ایجاد کنید که در انتها یک نمونه برای شما قرار خواهیم داد.
10. License URI : آدرس لیسانس پلاگین. در زیر آدرس 2 نمونه لایسنس که در بالا ذکر شد اورده شده
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' );
قسمت بعد ایجاد و مدیریت منو و برگه در ادمین
سلام. خیلی توضیحات گویا و خوبی بود. از مقاله تون بسیار متشکرم.
سپاسگزارم
سلام ممنون از توضیحاتتون من این کد رو نوشتم اما جدولی ساخته نشد برام.
و اینکه در کد CREATE TABLE {$wpdb->prefix}wpp_dbبه -> اشکال میگیره.
دیگه اون اشکال رو نمیگیره اما بازم جدول ساخته نمیشه .
ممنون میشم پاسخ بدین.
شما کوئری رو عینا از کدهای بالا کپی و تست کردید؟
قسمت بعدی رو کی قرار میدین ؟
این صفحه رو چطور میشه وردپرس کرد ؟
https://www.azangoo.ir/owghat
سلام تو وب سایتم میخوام یه جدول ایجاد کنم آیا میتونید راهنماییم کنید
سلام
لطفا سوالتون رو در انجمن مطرح کنید:
http://forum.wp-parsi.com/
خب برا ایجاد جدول از افزونه tablepress استفاده کنید
سلام
ممنون از آموزش
من میخام به صورت حرفه ای از صفر تا صد به حدی برسم که مثل سایت های فروش قالب و افزونه ،قالب و افزونه فارسی کنم و اونها رو گسترش بدم و حتی پلاگینهای جدید از صفر بنویسم
برای این کار باید چی کار کنم
آیا باید از صفر اچ تی ام ال . سی اس اس.جاوا.پی اچ پی رو یاد بگیرم و بعد برم سراغ پلاگین نویسی
یا این که اول دورهای مربوط به وبمستران و هوشمند رو یاد بگیریم و دیجیتال مارکتینگ که شامل ابزارهای سئو و… میشه
یا این که اول با توجه به اطلاعاتی که دارم سایتی رو راه اندازی کنم و به مرور دیجیتال ماکتینک رو یاد بگیرم و بعد هم برم سراغ برنامه نوسی و پلاگین نویسی
برای نوشتن قالب یا پلاگین شما باید تسلط کافی به زبان html-css-php و در قدم بعد javascript یا jquery داشته باشید
اینکه بخواهید توسعه دهنده بشید یا وبمستر بشید ۲ مقوله جدا از هم هست و به خودتون بستگی داره
سلام و وقت بخیر
من یک پلاگین نوشتم اما می خوام این پلاگین فقط توی سایت اعمال بشه و ارتباطی به api نداشته باشه.
آیا راهی وجود داره ؟
مفید و مختصر
عالی بود مهندس