تعداد بازدید: 102

Settings API در وردپرس

وردپرس برای ساخت پنل تنظیمات شبیه به پنل تنظیمات پیش فرض خودش API هایی رو قرار داده . Settings API , Options API دو مورد برای ساخت پنل تنظیمات در وردپرس است.

برای ساخت پنل تنظیمات ابتدا نیاز داری تا یک صفحه در پنل ادمین داشته باشید تا در نهایت تنظیمات را روی آن پیاده سازی کنید. برای این منظور مقاله Administration Menus در وردپرس را مطالعه کنید.

برای ساخت تنظیمات در وردپرس دو مرحله کار نیاز دارید :

  1. رجیستر کردن تنظیمات
  2. پیاده سازی تنظیمات در پنل

رجیستر کردن تنظیمات در وردپرس

برای رجیستر کردن تنظیمات ما به توابع زیر نیاز داریم:

  • register_setting : رجیستر کردن تنظیمات
  • add_settings_section : ساخت بخش برای تنظیمات و اتصال آن به تنظیمات (setting)
  • add_settings_field : ساخت فیلد و اتصال آن به تنظیمات (setting) و بخش (section)

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

تابع register_setting

  • option_group : این پارامتر حکم شناسه تنظیمات را دارد. به وسیله این پارامتر بخش ها (sections) و فیلد ها (fields) را به این تنظیمات متصل می کنیم. همچنین در زمان فراخوانی تنظیمات در پنل با همین شناسه تنظیمات را پیاده سازی می کنیم.
  • option_name : این پارامتر همان نام تنظیمات است که به وسیله get_option گرفته می شود. مقادیر کل فیلد های پیاده سازی شده در این تنظیم در سطری از جدول wp_options با نام option_name ذخیره می شوند که هر کدام از فیلد ها با نام خودشون قابل دسترسی هستند.

تابع add_settings_section

  • id : شناسه این بخش که قرار است فیلد ها از طریق این شناسه به بخش متصل شوند.
  • title : عنوان بخش که در بالای هر بخش قرار می گیرد.
  • callback : تابعی که قرار است خروجی بخش را تعیین کند. معمولا متن توضیحات گذاشته می شود.
  • page : شناسه تنظیماتی که رجیستر شده . برابر پارامتر option_group در تابع register_setting

تابع add_settings_field

  • id : شناسه فیلد
  • title : عنوان فیلد
  • callback : تابعی که قراره خروجی این فیلد رو بسازه . این تابع پارامتر args  که آخرین پارامتر این تابع است رو به عنوان ورودی میگیره.
  • section : شناسه بخش (section) که قراره در اون قرار بگیره رو باید بهش بدید . این همون پارامتر id هست که در تابع add_settings_section دادیم.
  • args : آرگومان هایی که قراره به تابعی که قراره خروجی رو برای این فیلد نمایش بده (callback) ، داده بشه در قالب آرایه که میتونه name , id , … و موارد این چنین لازم برای هر ورودی باشه.

پنل تنظیمات در وردپرس

بنابراین هر field میتونه به یه section و یک settings متصل باشه و هر section به یک settings متصل هست و در نهایت handler کل اون ها میشه option_group موجود در settings.

یک مثال ساده و کلی از روال بالا :

پیاده سازی تنظیمات در پنل

در این قسمت مقصود ما پیاده سازی همین تنظیماتی هست که در قسمت قبل ساختیم در پنلی که در اختیار داریم. دقت داشته باشید برای ساخت پنل (چه به صورت Top level Menu , Sub level Menu ) باید روال گفته شده را دنبال کنید.

برای پیاده سازی تنظیمات باید یک فرم با action که به برگه options.php می رود با متد POST قرار دهید و در درون آن توابع settings_fields , do_settings_sections , submit_button را فراخوانی کنید.

تمامی توابع زیر به عنوان ورودی پارامتر option_group مربوطه به تابع register_setting را می گیرند.

  • settings_fields : این تابع به عنوان ورودی شناسه settings را می گیرد.
  • do_settings_sections : این تابع به عنوان ورودی شناسه settings را می گیرد.
  • submit_button : این تابع برای ساخت دکمه ذخیره برای پنل تنظیمات شما به سبک دکمه های وردپرس می باشد.
  • add_settings_error : این تابع برای نمایش پیغام خطا یا موفقیت ذخیره سازی تنظیمات به کار می رود.

صورت کلی این روال را در زیر مشاهده می فرمایید :

نکته : در ابتدای این روال به وسیله تابع current_user_can چک کردیم که آیا کاربر جاری سطح دسترسی برای ویرایش داره یا خیر.

نکته : تابع get_admin_page_title برای نمایش عنوان صفحه است.

نکته : به عنوان یک تمرین خوب کل صفحه رو در یک div با کلاس wrap قرار میدیم.

گرفتن تنظیمات با استفاده از تابع get_option

ما زمانی که داشتیم register_setting می کردیم یه پارامتر (option_name ) بهش دادیم که با استفاده از همون می تونیم به تمامی تنظیمات دست پیدا کنیم.

خوب حالا ما یه متغیر داریم با نام settings که یه آرایه است که شامل تمامی تنظیمات ماست . هر جا ما فیلدی اضافه کردیم یه نام براش گذاشتیم که حالا اون فهرستی از آرایه ماست . با استفاده از نام فیلد به مقدار فیلد دست پیدا کنید. (به نحوه پیاده سازی فیلد ها در مثال بالا دقت فرمایید)

مزیت استفاده از settings api در وردپرس اینه که با پاک کردن تنها یک فیلد تمامی تنظیمات از پایگاه داده حذف میشه و این روال حذف پلاگین رو راحت تر میکنه برامون.

مطالب مشابه

Settings API در ووکامرس

ما برای ساخت پنل تنظیمات برای افزونه ها از api خود وردپرس استفاده می کردیم. حال این که افزونه مکمل برای ووکامرس می...

آموزش نکات و تکنیک های برنامه نویسی وردپرس

Administration Menus در وردپرس

برای پیاده سازی پنل های شخصی در محیط ادمین وردپرس نیاز هست که یک منو به همراه یک صفحه در وردپرس ایجاد کنیم. هر منو که...

اشتراک گذاری :

ابوالفضل صباغ

برنامه نویسی رو با زبان C در هفده سالگی شروع کردم . در حال حاضر به برنامه نویسی php برپایه معماری MVC , HMVC و همچنین سیستم مدیریت محتوای WordPress علاقه مند هستم و دوست دارم اطلاعاتم رو با شما به اشتراک بگذارم.

۰ دیدگاه برای Settings API در وردپرس

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *