برنامه نویسی پلاگین شما

حالا زمان آن رسیده که پلاگین خود را ایجاد کنید.

این بخش شامل ایده های کلی در مورد توسعه پلاگین است و چگونگی انجام مجموعه ای از کار هایی که برای ساخت پلاگین لازم است.

 توابع وردپرس (HOOKS)

بیشتر پلاگین های وردپرس برای رسیدن به اهداف خود به یک یا چند تابع متصل میشوند.

کار تابع به این صورت است که در زمانی که اتفاقاتی در وردپرس میافتد (بارگزاری، خواندن پست، ایجاد پست و…) وردپرس پلاگین ها را بررسی میکند تا اگر از تابع های سفارشی استفاده کرده اند رفتار پیش فرض وردپرس را تغیر دهد.

به طور مثال قبل از اینکه وردپرس عنوان پستی را به عنوان خروجی به مرورگر بدهد در ابتدا بررسی میکند که پلاگینی تابعی از نوع  فیلتر  با نام “the_title” را فراخوانی میکند یا نه. اگر بله،  متن عنوان بارگزاری شده است و توابع اجرا شده اند ولی هنوز خروجی نداشته اند و اگر پلاگین شما نیاز به تغیر در عنوان داشته باشد میتواند با تابع the_title این کار را رو انجام دهد.

مثالی دیگر تابعی از نوع اکشن: تابعی به نام “wp_footer” قبل از اینکه فایل فوتر ما به آخر فایل html اضافه شود در ابتدا وردپرس بررسی میکند که پلاگینی تابعی از نوع  اکشن  با نام ” wp_footer ” را فراخوانی میکند یا نه. اگر بله، تابع اجرا نشده و در قسمتی که پلاگین میخواهد اجرا میشود.

شما میتوانید چیزهای بیشتری درباره فراخوانی هر دو نوع تابع (filter    و   actionn)  و چه تابعی هایی در وردپرس در دسترس هستند در  Plugin API بیاموزید. اگر هم نقطه ای در وردپرس پیدا کرده اید که به آن دسترسی ندارید خودتان میتوانید تابعی برای وردپرس بسازید برای مطالعه بیشتر میتوانید به Reporting Bugs سر بزنید

تگ های پیش فرض

راه دیگر ساخت پلاگین ایجاد تگ های سفارشی پیش فرض میباشد کسی که میخواد از پلاگین شما استفاده کند باید این تگ های ساخته شده را به قالب خود در جای مناسب اضافه کند. به طور مثال یک پلاگین چغرافیایی تگ هایی را به قالب وردپرس اضافه میکند.

ممکن است تگی با نام geotag_list_states()  برای سایدبار تعریف کند، که قادر است لیستی از تمام پست ها را برمیگرداند همراه با لینک به صفحات بایگانی مبتنی بر پلاگین.

تعریف یک تگ سفارشی به سادگی نوشتن یک تایع php است و برای اطلاع کاربران نیز ان را نیز در home page  تعریف میکنید.

این یک ایده خوب است که از توابع برای اهداف خاص استفاده شود و دقیقاً همان چیزی را برگرداند که نیاز دارید. مانند <?php and ?>.

 

ذخیره اطلاعات پلاگین در پایگاه داده

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

چهار روش برای ذخیره اطلاعات در وردپرس وجود دارد.

  1. با استفاده از تنظیمات وردپرس (در زیر توضیح داده شده است) این روش با نام تکه ای از داده ها برای ذخیره مقدار نسبتاً کمی از نسبتاً ثابت (شما انتضار دارید صاحب سایت در لحظه راه اندازی پلاگین داده ها را وارد کند و به ندرت داده ها را تغیر دهد.)  مناسب است.
  2. پست متا(کاستوم فیلد)ها به شما این امکان را می دهند که بتوانید برای هر پست، برگه و فایل رسانه ای (به صورت مجزا) اطلاعاتی را ذخیره کنید. به طور مثال میتوانید توابع پست متا مانند add_post_meta() را مشاهده کنید.
  3. طبقه بندی سفارشی. برای طبقه بندی پست یا اشیاء دیگر مانند کاربران و نظر ها و… یا لیستی قابل ویرایش از نام و مقدار میتوان از فهرست داده ها با طبقه بندی سفارشی استفاده کرد به ویژه زمانی که شما میخواهید به تمام پست ها و اشیائ مرتبط به آنها دسترسی داشته باشید میتوانید از طبقه بندی سفارشی استفاده میکنید.                                                 برای یادگیری نحوه دسترسی به طبقه بندی میتوانید به طبقه بندی سفارشی مراجعه کنید.
  4. ایجاد یک جدول پایگاه داده سفارشی جدید.این روش برای داده های مناسب است که به پست ها، صفحات، فایل پیوست یا نظرات ارتباطی ندارد. داده ای که با گذشت زمان رشد میکند ولی نام های متفاوتی ندارد.                                     برای یاد گیری بیشتر میتوانید به ساخت جدول با پلاگین مراجعه کنید.

 

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

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

وردپرس روشی برای ذخیره، به روزرسانی و بازیابی قسمتی از داده های دیتابیس با نام های منحصر به فرد دارد. مقدارهای فیلد های تنظیمات میتوانند رشته، آرایه و اشیاءphp  باشد. (این مقادیر به صورت یک رشته ذخیره میشوند و در هنگام بارگذاری از هم جدا میشوند )

نام فیلدهای تنظیمات رشته هستند و باید منحصر به فرد باشند تا با پلاگین های دیگر در تضاد نباشد.

مطلوب است با استفاده تنظیمات زیر تظیمات پلاگین خود را به حداقل برسانید. به طور مثال ذخیره یک آرایه ۱۰ عنصری به جای ذخیره ۱۰ مقدار در ۱۰ فیلد.

در زیر توابعی که برای دسترسی به گزینه های  وردپرس لازم است ذکر شده.

این دستور یک فیلد به تنظیمات شما اضافه میکند.

add_option($name, $value, $deprecated, $autoload);

$name

باید رشته باشد. نام فیلد میباشد.

$value

اختیاری. به طور پیش فرض خالی میباشد. مقدار فیلد میباشد.

$deprecated

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

$autoload

اختیاری. پیش فرض yes است.(مقادیر yes , no را قبول میکند). اگر با yes  مقدار دهی شود تنظیمات توسط تابع wp_load_alloptions بازیابی می شود

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


get_option($option);

$option_name

مورد نیاز(رشته). نام فیلد مورد نظر است.

$newvalue

مورد نیاز(رشته | آرایه | جسم).  مقدار جدیدی که میخواهد ذخیره شود.

بخش های مدیریت

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

بین المللی کردن پلاگین شما

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

(فرایند راه اندازی پلاگین در تمام زبان ها).

لطفاً توجه داشته باشید که فایل های زبان به صورت خودکار به پلاگین اضافه نمیشود. پس کدهای زیر را به کدهای پلاگین خود اضافه کنید تا از بارگذاری فایل های زبان مطمئن شوید.

 


load_plugin_textdomain('your-unique-name', false, basename( dirname( __FILE__ ) ) . '/languages' );

برای گرفتن یک متن نمونه از __(‘String name’,’your-unique-name’);  استفاده میکنند.

برای بازیابی ترجمه از  _e(‘String name’,‘your-unique-name’); استفاده میکنند.

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

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

با ما حرفه ای شوید.

  1. امید حیدری says:

    جا داشت در مقاله تابع update_option رو هم می گفتید.