آموزش افزونه نویسی وردپرس

برنامه نویسی

10 دقیقه زمان مطالعه

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

افزونه چیست؟

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

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

نحوه عملکرد افزونه ها

آموزش وردپرس

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

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

ساختار پوشه ی افزونه ها

تمام افزونه های وردپرس در مسیر wp-content/plugins  نصب می شوند . برخی از نویسندگان افزونه برای راحتی کار خود در افزونه نویسی وردپرس فقط یک فایل PHP را برای افزونه خود درج می کنند ، اما ما همیشه توصیه می کنم برای ذخیره افزونه خود یک پوشه ایجاد کنید.

یکی از بهترین کار ها برای درست کردن صحیح پوشه ها به شکل زیر است:

  • نام پوشه افزونه (نام افزونه شما بدون فاصله یا کاراکترهای خاص)
  • پرونده اصلی افزونه php
  • پوشه js (برای پرونده های JavaScript)
  • پوشه css (برای پرونده های StyleSheet)
  • پوشه php (برای سایر کد های PHP)

به عنوان مثال، در اینجا یک ساختار نمونه برای شما ایجاد کرده ایم:

  • پوشه ی devlounge-plugin
  • devlounge-plugin-series.php
  • js
  • CSS
  • php

درون پوشه devlounge-plugin ، فقط پرونده اصلی PHP را وارد می کنیم و تمام پرونده های دیگر را در پوشه های مربوطه به خود قرار می دهیم. این ساختار به نویسندگان افزونه دیگری که به کد شما نگاه می کنند کمک خواهد کرد تا بتوانند بگویند که پرونده اصلی افزونه چیست و تمام فایلهای پشتیبانی در کجا قرار دارند.

وردپرس همچنین توصیه می کند که یک تصاویر را در مسیر نصب افزونه خود قرار دهید و همچنین پوشه شما شامل یک پرونده read me برای اطلاعات مربوط  به افزونه باشد.

افزونه نویسی

 

مفاهیم اصلی افزونه نویسی وردپرس شامل چه مواردی می‌شود؟

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

  1. ایجاد اکشن
  2. فراخوانی اکشن
  3. استفاده از آرگومان‌ها
  4. فیلترها

اکشن

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

وردپرس ده ها اکشن تعریف شده در کنار اکشن های اصلی خود دارد ، هر اکشن از یک نام منحصر به فرد تشکیل شده است. به عنوان مثال ، وقتی وردپرس در حال ذخیره یک پست است (مانند ارسال ، صفحه یا نوع دیگر محتوا) ، اکشن save_post را فراخوانی می کند که خود این اکشن می تواند شامل چندین اکشن متفاوت باشد که به ترتیب اجرا می شوند.

همه اکشن با استفاده ازعملگر ()do_action تعریف می شوند . این عملکرد مانند سایر زبان های برنامه نویسی مانندHTML داری چندین نوع تابع متفاوت است. مانند:

$tag (ضروری)

$args (یک یا چند متغیر اختیاری)

به طور کلی ، تابع یک نام اختصاصی دارد و با استفاده از آن نام فراخوانی می شود همچنین تعداد متغیر هایی که یک تابع می تواند دریافت کند نیز متغیر است و حتی می تواند هیچ متغیری دریافت نکند و در بعضی شرایط می تواند بی شمار متغیر ورودی  داشته باشد.

یک اکشن ساده دروردپرس

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

 

//the save_post action hook

do_action(`save_post`, $post_ID, $post, $update);

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

اکشن خود را ایجاد کنید

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

در قطعه کد زیر ما با استفاده از do_action  یک تابع نوشته ایم که می توانیم بعد از جایی که موضوع صفحه وارد شده مطلبی را درج کنیم.

//create a new action to be used after our page title

do_action('page_subtitle', $post);

هنگامی که یک  صفحه تکی نمایش داده می شود عنوان را به صورت عادی نشان می دهد و بعد از آن به اکشن page_subtitled می رسد در نتیجه این اکشن تابع ‘page_subtitle’ را فراخوانی می کند و تمام دستوراتی که در این تابع نوشته شده را به ترتیب اجرا می کند.

عملکردهای خود را با استفاده از فراخوانی اکشن استفاده کنید

برای فراخوانی یک تابع با دستورات خاص هنگام انجام یک اکشن ، باید از عبارت ()add_action در اول توابع خود از آن استفاده کنید.

add_action پارامترهای زیر را می گیرد.

  • $hook (ضروری)
  • $function_to_add (ضروری)
  • $priority (اختیاری)
  • $accepted_args(اختیاری است ، اما زمانی که عملکرد بیش از یک متغیر ورودی داشته باشد لازم است)

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

//when 'save_post' is triggered, call our saving function

add_action('save_post','save_my_custom_post');

//defines our function that will handle our saving

function save_my_custom_post($post_id){

    //you will do your saving here

}

 

همانطور که می بینید ، هنگامی که اکشن save_post اتفاق می افتد ، ما تابع  save_my_custom_post خود را به آن متصل کرده ایم و به ما امکان می دهد که کد خود را بهینه سازی کنیم و بهترین استفاده را از آن داشته باشیم.

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

استفاده از همه ارگمان ها

بعضی اوقات استفاده از مقادیر اجباری کافی نخواهد بود. شاید لازم باشد که مقادیر $priority و $accepted_args و همچنین سایر مقادیر را تنظیم کنید تا عملکرد خود را عملی کنید.

Priority باعث ترتیب بندی در زمان اجرای دستورات شما در توابع می شود شما با استفاده از آن می توانید مشخص کنید که توابع و ارگمان های شما با چه ترتیبی در زمان فراخوانی اجرا شوند.

accepted_args یکی از ارگمان هایی است که در هنگام استفاده از مقادیر ورودی می توانیم مشخص کنیم که چه تعداد از آن ها را انجام دهد و چه تعداد را انجام ندهد و همچنین می توان مشخص کرد که بعد از انجام دستورات مربوطه چه کاری را انجام دهد به عنوان مثال آیا مقداری را به تابع اصلی بازگشت دهد یا خیر

 

//the save post action, defined in WordPressdo_action( 'save_post', $post_ID, $post, $update ); //add our function onto the 'save_post' hook, supplying priority and argsadd_action('save_post','save_my_page_extended,10,3); //function executed on save (we want all three variables)function save_my_page_extended($post_ID, $post, $update){    //access all of our variables to do some work}

 

در اینجا تابع save_post دارای چندین متغیر است که می تواند آن ها را به عنوان ارگمان ورودی به تابع اصلی دهد ، به همین ترتیب ما باید اولویت آن را تعیین کنیم و همچنین تعداد متغیرهای مورد نظر را در آن باید مشخص کنیم. هنگامی که ما یک تابع در وردپرس تعریف می کنیم باید مشخص کنیم  که چه تعداد ارگمان ورودی خواهد داشت و در نهایت آیا مقداری را بازگشت می دهد یا خیر تا در هنگام نیاز بتوانیم به درستی از تمام توابع تعریف شده استفاده کنیم.

خلاصه اکشن

به طور کلی ، شما از تابع  do_action برای اجرای کد در یک مکان تنظیم شده (تنظیم مقادیر موجود برای هر عملکرد دست شما خواهد بود و می توانید بسته به نیاز خود آن را تنظیم کنید ) با توجه به نیاز خود استفاده کنید.

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

فیلترها

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

وردپرس همراه  با ده ها فیلتر ارائه شده است و برای استفاده از ان ها باید عملگر () apply_filters را ایجاد کنید . این عملکرد در هنگام فراخوانی  ارگمان های زیر را می گیرد

$tag (ضروری)

$value (ضروری)

$var (اختیاری)

$ tagمتغیر به نام فیلتر است.

$value مقدار یا ارگمان هایی است که فیلتر می شود

$var متغیر اختیاری است اما اجازه می دهد تا شما بتوانید مقادیر بیشتری به تابع خود اضافه کنید.

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

یک فیلتر ساده وردپرس

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

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

 

//get the except for a post, as defined in /wp-includes/post-template.php

echo apply_filters( 'the_excerpt', get_the_excerpt() );

 

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

ایجاد فیلترهای شخصی شما

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

//make our name value array filterable

$name_values = apply_filters('filter_name_array_values',

            array('Joanna','Peter')

);

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

وقتی می خواهید فیلتر خود را اجرا کنید ، باید از تابع () add_filter استفاده کنید . این تابع مقادیر زیر را می گیرد

$tag (ضروری)

$function_to_add (ضروری)

$priority (اختیاری)

$accepted_args (اختیاری اما اجباری است اگر چندین استدلال تصویب شده داشته باشیم)

این  add_filterعملکری مشابه تابع add_action دارد. شما نام فیلتری را که می خواهید فراخوانی کنید ، به همراه عملکردی که به آن فراخوانی می شود تعریف می کنید و ما در این جا مثالی برای طراحی فیلتر شخصی برای شما آورده ایم که می توانید از آن در افزونه نویسی وردپرس برای اضافه کردن فیلتر استفاده کنید.

//Change the saved name values by filtering them

function add_new_names($names){

    $names[] = 'Simon';

    return $names;

}

add_filter('filter_name_array_values','add_new_names');

همانطور که می بینید ما تابع  add_new_names  را به filter_name_array_values ( فیلتر خود ) متصل می کنیم و به صورت یکی متغیر واحدی از آن استفاده می کنیم .

تابع ما در اینجا مقادیر موجود را (که ما $ namesبرای ساده سازی در آن نوشتیم ) استفاده می کنید و مقدار جدیدی را به انتهای آن به نام Simon اضافه می کنیم.

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

خلاصه فیلترها

ما از تابع apply_filters برای ایجاد فیلترهای خود در درون قالب یا افزونه خود استفاده می کنیم ( که این عملگر مقادیر مورد نظر برای فیلتر کردن را تهیه می کنید). سپس می توانید از تابع add_filter برای اتصال عملکرد خاص خود بر روی این فیلتر استفاده کنید و به شما این امکان را می دهد تا متغیر فیلتر شده را دستکاری کرده و آن را برگردانید).

جمع بندی

جستجوی کد افزونه ها راهی عالی برای یادگیری افزونه نویسی وردپرس است. با هر بار انجام ابن کار چیز جدیدی از پلاگین نویسی وردپرس را یاد می گیرید. ما در این مقاله سعی کردیم روش کلی افزونه نویسی وردپرس را در وردپرس به شما آموزش دهیم هر چند برای اینکه شما بتوانید یک پلاگین نویس حرفه ای شوید نیاز است تا با تمام توابع و عملگر ها در وردپرس آشنا شوید و با تمرین بسیار به آن ها مسلط شوید در واقع با آموزش وردپرس باید صفر تا صد این پلتفرم را یاد بگیرید. لازم به ذکر است که در پلتفرم ژاکت آکادمی ما آموزشی تحت عنوان فارسی سازی قالب و افزونه وردپرس ارائه دادیم که با استفاده از آنها می‌توانید به راحتی افزونه و قالب وردپرس خارجی را فارسی سازی کرده و به فروش برسانید.

 

آموزش وردپرس

 

محصول پیشنهادی

قالب فروشگاهی وودمارت | قالب Woodmart

825,000 تومان

84.09%
وردپرسِ من!

وردپرسِ من!

محصول پیشنهادی

قالب HTML چندمنظوره Vristo | قالب پنل مدیریت vristo

395,000 تومان

0%
اشکان کیانی

اشکان کیانی

2

نویسنده سینا عباسی

سایر مقالات نویسنده

مطالب مشابه

2

دیدگاه ها

ارسال دیدگاه

سلام ایا برای تبدیل تاریخ افزونه ها هم همین فایلهای php کاربرد داره یا چیزه دیگه ای لازمه

با سلام
مبحث تاریخ و علی الخصوص دیت پیکرها و تبدلی انها کمی پیچیده می باشد

ارسال دیدگاه