- آموزش زمان بندی رویدادها با WP Cron در وردپرس
- مقدمه ای بر توسعه افزونه
- افزونه چیست ؟
- مبانی افزونه
- نیازمندی های هدر
- درج یک مجوز نرم افزار در افزونه
- قلاب های فعال و غیر فعال سازی
- متدهای حذف در سایت های وردپرس
- امنیت افزونه
- بررسی قابلیت های کاربر
- اعتبار سنجی داده ها
- امنیت ورودی
- امنیت خروجی
- Nonce ها
- قلاب ها
- اکشن ها (Actions)
- فیلترها (Filters)
- ایجاد قلاب های سفارشی
- تاپیک های پیشرفته
- منوهای مدیریت
- منوهای سطح بالا
- زیر منوها
- کدهای کوتاه
- مبانی کدهای کوتاه
- کدهای کوتاه جفتی
- کدهای کوتاه پارامتردار
- تنظیمات
- API های تنظیمات
- ایجاد و استفاده از گزینه ها
- گزینه های تکی و آرایه ای
- صفحه تنظیمات سفارشی
- فراداده (Metadata)
- ایجاد و مدیریت فراداده نوشته
- ایجاد متاباکس های سفارشی
- دریافت فراداده
- انواع نوشته سفارشی
- ایجاد پست تایپ سفارشی
- کار با داده های پست تایپ ها
- طبقه بندی یا Taxonomy در وردپرس
- ایجاد و کار با طبقه بندی های سفارشی
- کار با متادیتا (Metadata) کاربران در وردپرس
- ایجاد و مدیریت کاربران در وردپرس
- نقش ها و قابلیت های کاربران در وردپرس
- آموزش استفاده از سرویس HTTP API در وردپرس
- آموزش استفاده از ایجکس (Ajax) در وردپرس
- آموزش استفاده از Transients برای کش کردن در وردپرس
- آموزش WP-Cron وردپرس
- آموزش استفاده از جیکوئری (jQuery) در وردپرس
- آموزش کار با PHP سمت سرور و Enqueue در وردپرس
- قلاب کردن WP-Cron وردپرس به سیستم زمان بندی سرور
در این بخش می خوانید :
شروع بکار
قلاب ها : اکشن ها و فیلترها (Actions and Filter)
استفاده از API ها وردپرس
چگونگی بارگذاری افزونه ها در وردپرس
شروع بکار
در ساده ترین حالت ، یک افزونه وردپرس یک فایل PHP با یک عنوان توضیح دار در هدر خود می باشد .
پیشنهاد می شود که برای افزونه خود یک پوشه هم نام با افزونه ایجاد کنید . مسیر فایل افزونه شما می تواند چیزی شبیه زیر باشد .
your-plugin-folder/your-plugin-file.php
تنها یک فایل در داخل پوشه افزونه باید دارای هدر عنوان دار باشد .
- به پوشه ( جهت راحتی در خواندن به جای دایرکتوری از پوشه استفاده می کنیم) wp-content بروید
- به پوشه plugins بروید
- یک پوشه ایجاد کنید . به عنوان مثال your-plugin-name
- داخل پوشه ساخته شده در مرحله قبل بروید
- یک فایل با پسوند php ایجاد کنید ، مثلاً your-plugin-name.php
در زیر معادل پنج مرحله قبل را در خط فرمان یونیکس مشاهده می کنید :
wordpress$ cd wp-content wp-content$ cd plugins plugins$ mkdir sfd-handbook plugins$ cd sfd-handbook sfd-handbook$ vi sfd-handbook.php
در مثال بالا ، vi ادیتور می باشد . شما از ادیتور مورد علاقه خود استفاده کنید .
اکنون که شما مراحل ایجاد یک افزونه را آغاز کرده اید ، باید آن را نامگذاری کنید .
خطوط پایین تمام چیزی است که وردپرس برای شناسایی افزونه شما لازم دارد .
<?php /* Plugin Name: Handbook Example */
بعد از اینکه فایل خود را ذخیره کردید ، شما باید با مراجعه با قسمت ” افزونه های نصب شده “ در مدیریت وردپرس ، افزونه خود را مشاهده کنید .
برای اینکار به مدیریت وردپرس وارد شوید و در قسمت “افزونه ها” ، روی “افزونه های نصب شده” کلیک کنید
گاهی اوقات شما یک افزونه را فقط برای یک سایت خاص ایجاد می کنید ، که معمولاً به اینگونه افزونه ها ، “افزونه اختصاصی” می گویند و بعضی اوقات شما افزونه خود را در مخزن اصلی وردپرس یعنی wordpress.org قرار می دهید و همه کاربران وردپرسی در سراسر دنیا می توانند از آن استفاده کنند .
به عنوان یک بخش استاندارد از هدر افزونه ، شما باید لایسنس یا مجوز استفاده از افزونه را مشخص کنید .
تعیین این مجوز ، نحوه استفاده از افزونه را به کاربران منتقل می کند .
جهت سازگاری با هسته وردپرس ، پیشنهاد می شود که یک مجوز که با GNU (General Public License) GPLv2+ کار می کند را در قسمت مجوز افزونه قرار دهید .
پارامترهای زیادی برای قرار گرفتن در هدر فایل افزونه وجود دارند که می توانند اطلاعاتی مفیدی را برای مدیریت سایت وردپرس در قسمت ” افزونه های نصب شده ” به نمایش در آورند .
اگر شما قصد قرار دادن افزونه خود در مخزن وردپرس را دارید ، باید از دستورالعمل مشخص شده در لینک زیر پیروی کنید
WordPress Plugin Header Requirements.
قلاب ها : اکشن ها و فیلترها (Actions and Filter)
قلاب های فراوانی در سراسر هسته وردپرس وجود دارند .
قلاب های وردپرس به شما اجازه می دهند که در نقاط خاصی (منظور زمان های خاصی در هنگام کار هسته وردپرس است) رفتار وردپرس را بدون دستکاری کردن هسته آن ، تغییر دهید .
در وردپرس ۲ نوع قلاب وجود دارد : اکشن ها (Actions) و فیلترها (Filters)
اکشن ها به شما این امکان را می دهند که بتوانید قابلیت های وردپرس را تغییر دهید یا به آنها اضافه کنید ، در حالی که فیلترها به شما امکان فیلتر کردن یا تغییر محتوای سایت را می دهند .
قلاب ها نه تنها برای توسعه دهندگان افزونه ، بلکه به صورت گسترده برای قابلیت های پیش فرض خود هسته وردپرس نیز بکارگیری می شوند .
همه قلاب های وردپرس برای اعمال تغییرات دلخواه شما بر روی عملکرد وردپرس به سادگی در دسترس هستند .
این همان چیزی است که وردپرس را بسیار انعطاف پذیر کرده است .
۲ قلاب مهم که شما برای ایجاد افزونه از آنها استفاده خواهید کرد عبارتند از :
register_activation_hook() و register_uninstall_hook()
قلاب activation یا فعال سازی ، زمانی اجرا می شود که شما افزونه را در مدیریت وردپرس فعال می کنید .
شما باید یک تابع تعریف کنید تا در زمان اتفاق افتادن این قلاب (قلاب فعال سازی) اجرا شود . به عنوان مثال می توانید جداول مورد نیاز خود را با استفاده از دستورات داخل تابع ایجاد کنید . یا اینکه فیلدی را به جدول تنظیمات وردپرس (wp_options) اضافه کنید .
قلاب حذف یا uninstall برای پاک سازی تغییرات افزونه شما روی وردپرس بکار می رود .
به عنوان مثال در نظر بگیرید که افزونه شما ۱۰ جدول به جداول وردپرس اضافه کرده است ، در هنگام حذف افزونه شما که قلاب uninstall اتفاق می افتد ، شما می توانید با متصل کردن یک تابع به این قلاب ، آن جدول ها را از بانک اطلاعاتی وردپرس حذف کنید .
بعلاوه شما می توانید با استفاده از do_action توابع خود را به سایر قلاب های وردپرس متصل کرده و افزونه خود را گسترش دهید .
برعکس این قضیه نیز صادق است ، یعنی اینکه شما می توانید بر اساس تابع توکار remove_action توابعی را که قبلاً بر روی یک قلاب قرار گرفته اند را حذف کنید .
به عنوان مثال اگر افزونه شما یک افزودنی (add-on) برای یک افزونه دیگر باشد ، می توانید توسط تابع remove_action در افزونه خود ، عملکرد توابعی که در افزونه اصلی با تابع add_action اجرا می شوند را حذف کنید . یک نمونه از افزونه های افزودنی ، افزونه درگاه پرداخت برای افزونه ووکامرس می باشد .
نکته ای که باید همیشه توسط شما به عنوان توسعه دهنده افزونه مدنظر قرار گیرد این است که ، ترتیب و اولویت فراخوانی قلاب های add_action و remove_action بسیار مهم است . یعنی اگر شما بخواهید یک قلاب add_action را حذف کنید ، حتماً باید قلاب remove-action را بعد از آن فراخوانی کنید و نه قبل از آن .
همچنین باید مراقب باشید که به صورت صحیح از قلاب remove_action استفاده کنید . زیرا ممکن است چگونگی فعل و انفعالات و تغییرات حاصل از این تغییرات بر روی چندین تابع دیگر متصل به قلاب تاثیر بگذارد .
به شدت به شما توصیه می کنیم قبل از انتشار یا تحویل افزونه خود ، آن را با حالت های مختلف تست کنید تا از عملکرد آن در شرایط مختلف ، مطمئن شوید .
اطلاعات بیشتری را درباره ایجاد قلاب ها و نحوه تعامل با آنها را در درس های آینده توضیح خواهیم داد .
استفاده از API های وردپرس
آیا می دانید که وردپرس تعداد زیادی Application Programming Interface یا ” رابط کاربردی برنامه نویسی” ( به صورت اختصار API) را آماده استفاده قرار داده است ؟
این API ها می توانند تا حد زیادی کدنویسی را برای شما ساده کنند .
نیازی نیست شما دوباره چرخ را اختراع کنید ، زمانی که افراد زیادی آن را ساخته اند و تست کرده اند .
معمول ترین رابط های کاربردی برنامه نویسی ، API های تنظیمات هستند که به صورت بسیار ساده داده های افزونه شما را در بانک اطلاعاتی وردپرس ذخیره می کنند .
به عنوان نمونه ، اگر به فکر استفاده از cURL در افزونه خود هستید ، ممکن است API های HTTP برای شما جذاب باشند . چون بحث اصلی این کتابچه ایجاد افزونه است ، از توضیح بیشتر مسائل غیر اصلی پرهیز می کنیم . شما می توانید اطلاعات بیشتری در مورد API ها در اینجا مطالعه کنید .
وردپرس دارای تعداد زیادی تابع است که شما را در توسعه افزونه کمک می کنند .
چگونگی بارگذاری افزونه ها در وردپرس
هنگامی که وردپرس لیست افزونه های نصب شده را بارگذاری می کند ، در میان پوشه ها و زیرپوشه های افزونه ها به دنبال فایل php ای می گردد که دارای بخش هدر (بخش معرفی افزونه که قبلاً توضیح داده شد) است .
اگر افزونه شما فقط یک فایل php است می تواند بدون پوشه باشد . ولی معمولاً برای هر افزونه یک پوشه همنام با اسم فایل php اصلی افزونه ایجاد می کنند .






