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

+- باشگاه کاربران روماک (https://forum.romaak.ir)
+-- انجمن: انجمن طراحی سایت و برنامه نویسی (https://forum.romaak.ir/forumdisplay.php?fid=78)
+--- انجمن: اسکریپت ها و سیستم های مدیریت محتوا (https://forum.romaak.ir/forumdisplay.php?fid=37)
+---- انجمن: وردپرس (https://forum.romaak.ir/forumdisplay.php?fid=54)
+----- انجمن: آموزشهای وردپرس (https://forum.romaak.ir/forumdisplay.php?fid=124)
+----- موضوع: آموزش ساخت افزونه وردپرس (/showthread.php?tid=4228)



آموزش ساخت افزونه وردپرس - سحر - ۹۶/۹/۲۶

حتما می دانید که مهم نیست تغییر دلخواه شما چه باشد، به هر حال در اکثر موارد کد هایی که باید استفاده کنید جایشان در فایل functions.php قالب شما خواهد بود. امروز می خواهیم به راه دیگری برویم و روش بهتری را برای سفارشی سازی سایتتان به شما یاد بدهیم که بدون شک، پایداری سایت وردپرسی شما را چندین برابر کرده و در عین حال به شما کمک می کند تا بتوانید به شکل بهتری سایت خود را مدیریت کرده و کارایی آن را نیز افزایش دهید.

کاری که قصد داریم انجام بدهیم این است که از این به بعد قطعه کد هایی که برای سفارشی سازی سایت استفاده می کنیم (snippet ها) را بجای قرار دادن در functions.php در قالب یک پلاگین (اصطلاحا Site Specific Plugin ) در سایت خود قرار دهیم.

چرا به جای ویرایش functions.php، برای خود افزونه ی وردپرس بسازیم؟
پاسخ این سوال بسیار ساده است و جواب هایی هم که می توان به آن ارائه کرد، بسیار مفصل. اما اجازه بدهید تا حد امکان مختصر به این پرسش، پاسخ دهیم:

اولین و ساده ترین دلیل این است که قطعه کد هایی که هر روز به شما آموزش میدهیم (یا شما در سایت های دیگر با آنها آشنا میشوید و تصمیم میگیرید از آنها استفاده کنید) در اکثر موارد اصلا ربطی به قالب سایت شما ندارند و بدیهی است که شما هم دلتان نمیخواهد اگر یک روز قالب وبسایتتان عوض شد، کلیه ی تنظیمات و سفارشی سازی هایی که در طول مدت استفاده از قالب با استفاده از فایل functions.php بر روی سایتتان اعمال کرده بودید را از دست بدهید. بدیهی است که از هر قالبی هم که استفاده کنید دوست ندارید تنظیماتی که با زحمت بر روی سایت اعمال کرده اید تا نتایج دلخواه شما حاصل شود، از دست بروند. نمونه ای دیگر از این کد ها و تنظیمات، shortcode هایی است که ممکن است در سایت استفاده کرده باشید! فکر می کنم می توانید لحظه ای را تصور که پس از تغییر قالبتان، دیگر هیچ از shortcode های شما کار نکند …

دلیل دوم اینکه تا حالا چند بار پیش آمده که کدی که در فایل functions.php قرار می دهید ایراد داشته باشد؟ یا مثلا شما آن را در محلی اشتباه در functions.php قرار داده باشید؟ و یا مثلا اشکالی در نحوه ی قرار گیری تگ های شروع و پایان php وجود داشته باشد؟ زیاد؟
پس میدانید میخواهم از چه چیزی صحبت کنم. زمان هایی پیش می آید که بخاطر قرار دادن یک کد اشتباه در functions.php باعث میشوید سایت شما به طور کامل از دسترس خارج شود و خودتان هم بیرون بخش مدیریت گیر می افتید. در این حالت باید حتما وارد هاست شده و یا با استفاده از FTP کنترل مسائل را به دست بگیرید. ولی اگر کد جدیدتان را در پلاگینی که مخصوص این کار ایجاد کرده اید قرار دهید، حتی اگر کد شما سراسر ایراد باشد، خود سیستم وردپرس این مسئله را فهمیده و به سادگی پلاگین را غیر فعال میکند. نتیجه می شود اینکه دسترسی شما به مدیریت حفظ میشود و بلایی هم سر سایتتان نخواهد آمد.
نکته آخر هم اینکه هیچ کس از یک فایل functions.php غول پیکر که معلوم نیست در آن هر چیزی در کجا قرار گرفته است خوشش نمی آید. بنابراین نتیجه ی استفاده از یک Site Specific Plugin (یا مثلا بهش بگوییم پلاگین کوچک!) این است که سایت شما به پایداری بالاتری خواهد رسید و کارایی آن نیز بهبود خواهد یافت.

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

1-در محل نصب پلاگین ها در هاستتان یک فولدر با نامی دلخواه برای خود ایجاد کنید. (محل نصب پلاگین ها یعنی wp-content -> plugins) مثلا ما نام فولدرمان را mrcode-plugin گذاشتیم.

2- یک فایل، همنام با فولدر خود با فرمت php ایجاد کنید. مثلا mrcode-plugin.php و کد زیر را در آن قرار دهید:

*محتوای این قسمت تنها برای اعضای انجمن قابل مشاهده می باشد. *

در کد بالا می توانید example.com را با آدرس سایت خود عوض کنید.

3- این فایل را در فولدری که ایجاد کرده بودید آپلود کنید.

یک نکته ی مهم این که اگر میخواهید از زبان فارسی در افزونه ی وردپرس تان استفاده کنید فراموش نکنید، اینکودینگ فایلی که ایجاد میکنید باید utf-8 یا ترجیحا utf-8 without BOM باشد. چنین تنظیماتی را میتوانید از طریق ویرایشگری همچون Notepad++ انجام دهید ولی اگر چنین ویرایشگری ندارید و از cPanel استفاده میکنید، نگران چیزی نباشید، چون کافی است فایلتان را در خود cPanel ایجاد کنید تا ویژگی هایی که از آنها نام بردیم را داشته باشد.
با انجام این کار، از این به بعد می توانید به سادگی هر گاه که خواستید snippet جدیدی به سایت خود اضافه کنید که وابسته به قالب سایت شما نبود، به سادگی به بخش ویرایشگر افزونه ی وردپرس بروید (منوی افزونه ها، زیر منوی ویرایشگر ) افزونه ی وردپرس جدیدتان را برای ویرایش انتخاب کنید و کد دلخواهتان را جایی در میان دو خط کامنت شروع پایان (در خط 7 و 8 کد) قرار دهید و تغییرات را ذخیره کنید.

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