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

نوشته شده توسط ۴ ماه پیش

بخش دوم ایجاد صفحه در بخش مدیریت:

آموزش پلاگین نویسی
برای افزودن صفحه به منوی ادمین وردپرس از هوک admin_menu استفاده میکنیم.هر منو دارای یک منوی اصلی وتعدادی زیر منو میباشد. برای ایجاد منوی اصلی از تابع add_menu_page استفاده میشود.توجه داشته باشید منوها به صورت پیشفرض در انتهای لیست منوهای بخش مدیریت وردپرس قرار خواهد گرفت.

page_title:عنوان برگه منو که وقتی وارد صفحه منو میشوید در title صفحه نمایش داده میشود
menu_title: عنوانی که در منوی اصلی نمایش داده میشود
capability: سطح دسترسی که میتواند به این منو دسترسی داشته باشد.
توجه :برای ایجاد سطح دسترسی میتوانید از نام نقش(role) مورد نظر مانند administrator یا از توانایی(capability) مانند manage_options استفده کنید تفاوت ایندو در این هست که با استفاده از نام نقش فقط کاربر های آن نقش مثلا فقط ادمینها به این بخش دسترسی دارند و با استفاده از توانایی مجموعه کاربرهایی که توانایی انجام این کار را دارند در اینجا ادمینها و ویرایشگرها قابلیت دسترسی به این برگه را دارند.
menu_slug:اسلاگی که برای منو در نظر گرفته میشود و در ادرس بار نمایش داده میشود
Function:نام تابعی که برگه منو را فراخوانی میکند
icon_url :آدرس ایکونی که برای منو نمایش داده میشود و اختیاری میباشد
position :مکان قرار گرفتن منو که یک مقدار عددی بزرگتر از ۰ و اختیاری میباشد

زیر منو

برای افزودن زیرمنو از تابع add_submenu_page استفاده میشود.

parent_slug:این مقدار به وردپرس میگوید زیرمنو مربوط به کدام ایتم از منو اصلی میباشد و مقدار آن برابر مقدار function از تابع add_menu_page میباشد
page_title: عنوان برگه منو که وقتی وارد صفحه منو میشوید در title صفحه نمایش داده میشود
menu_title: عنوانی که برای این زیرمنو نمایش داده میشود
capability: سطح دسترسی که میتواند به این منو دسترسی داشته باشد
menu_slug: اسلاگی که برای منو در نظر گرفته میشود و در ادرس بار نمایش داده میشود
function : مکان قرار گرفتن منو که یک مقدار عددی بزرگتر از ۰ و اختیاری میباشد
خب هر گاه نیاز به حذف منو یا زیر منو نیاز باشد از توابع زیر استفاده میشود.

برای حذف یک منوی اصلی یا top menu از تابع: remove_menu_page استفاده میشود

menu_slug :اسلاگ منوی مورد نظر که نیاز به حذف آن دارید
و برای حذف یک زیرمنو از تابع remove_submenu_page استفاده میشود

:menu_slugاسلاگ منوی اصلی یا top menu که نیاز دارید زیر منوی آن حذف شود
submenu_slug :اسلاگ زیرمنوی مورد نظر که نیاز دارید حذف شود.
علاوه بر این توابع اصلی برای فزودن یا حذف منو توابع دیگری نیز وجود دارد که به شما این امکان را میدهد تا در بخشهای دیگر از وردپرس منو ایجاد کنید
افزودن به قسمت دشبورد وردپرس:

برای ایجاد منو به صورت زیر عمل میکنیم:

توجه داشته باشید در وردپرس محتویات صفحات ادمین در یک div با کلاس wrapقرار میگیرد. <div class=”wrap”> که به نمایش بهتر برگه شما کمک میکند.

ایجاد برگه تنظیمات

برای شروع در این برگه یک سری المان قرار میدهیم به عنوان تنظیمات و ذخیره سازی.
یک فورم داخل صفحه قرار میدهیم و برای چیدمان المانها از جدول استفاده میکنیم یک تکست باکس و یک سلکت باکس قرار میدهیم به صورت زیر

توجه ۱:کلاسهایی مانند button-primary و widefat از کلاسهای استایل خود وردپرس میباشد و برای یکدست شدن و شکیلتر شدن استفاده میشود.شما میتوانید علاوه بر این کلاسهای از استایل و کلاسهایی که خود ایجاد میکنید نیز استفاده کنید.
توجه ۲: خواصی مانند placeholder یا required استفاده از اینها اختیاری بوده ولی به کارایی برگه شما کمک میکند.

بعد از ایجاد فورم تنظیمات نوبت به ذخیره فورم و بازیابی آن میرسد.تنظیمات معمولا در جدول options وردپرس ذخیره میشود و برای ذخیره از تابع update_option و بازیابی از تابع get_option استفاده میشود.
توجه داشته باشید بهتر است تمام تنظیمات در یک فیلد ذخیره شود (مثلا به صورت یک ارایه).زیرا در صورت قرار دادن هر ایتم در یک فیلد به ازای هر تنظیم و استفاده از get_option یک ریکویست به mysql ارسال میشود که این خود باعث اطلاف منابع و فشار به سرور در زمانهای شلوغی سایت میشود.

در روش فوق مقدار $_POST که یک متغییر عمومی php که تمام مقادیر postback شده از سمت فورم را به صورت ارایه در اختیار دارد را در جدول تنظیمات در فیلدی بنام my_xoptions ذخیره میکند و بعد از ذخیره پیغامی مبنی بر:” تنظیمات با موفقیت ذخیره شد” نمایش میدهد.
توجه:کلاس error استفاده شده در پیغام از کلاسهای خود وردپرس میباشد که استایل پیغام را به صورت استایل وردپرس تغییر میدهد.

بازیابی تنظیمات

برای بازیابی تنظیمات از تابع get_option به صورت زیر استفاده میشود

تابع selected از توابع وردپرس میباشد که برای چک کردن مقدار select ها بکار میرود و در صورت برابر بودن مقدار ، مقدار selected برمیگرداند .
نوشتن شرط به صورت $op2 = empty($opt[‘opt3’])?0:$opt[‘opt3’]; به نام ternary معروف است که بدلیل کم حجم بودن موارد مصرف فراوانی دارد.

اعتبار سنجی

توجه داشته باشید بهتر است قبل از ذخیره مقادیر در صورت نیاز و مخصوصا هنگامی که از کاربر غیر ادمین مقداری دریافت میکنید حتما اعتبار سنجی کنید تا از مشکلات احتمالی جلوگیری شود
تابع زیر برای جلوگیری از sql injection بکار میرود

علاوه بر این روش روش دیگری نیز در وردپرس برای ذخیره تنظیمات و جود دارد با استفاده از توابع وردپرس

که به علت پیچیدگی از توضیح انها صرف نظر میکنیم .برای توضیحات بیشتر شما میتوانید به آدرس زیر مراجعه فرمایید.

وردپرس از شما میخواهد در هنگام استفاده از فورم حتما از توابع nonce برای امنیت بیشتر استفاده کنید
(اگر میخواهید پلاگین خود را در وردپرس ثبت کنید حتما به این موضوع توجه داشته باشید)

قسمت بعد هوکها و فیلتر ها در پلاگین

مبین قاسمپور

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

    احسنت . بسیار آموزش کامل و عالی بود .