چگونه یک پلاگین وردپرسی ایجاد کنیم؟

پلاگین های وردپرس اسکریپت های PHP هستند که طراحی سایت شما را تغییر می دهد. این تغییرات می تواند هر چیزی را از ساده ترین نیشگون گرفتن در هدر به ظاهر سازه ی دشوارتر (مانند تغییر نحوه کار ورود به سیستم، راه اندازی ایمیل هایی که فرستاده می شود و خیلی بیشتر) باشد. این مقاله در تاریخ ۵ ژوئیه ۲۰۱۷ بررسی و به روز شده است.

در حالی که تم ها تغییر ظاهر وب سایت شما، پلاگین ها تغییر چگونگی عملکرد آن ها را تغییر می دهد. با پلاگین ها، شما می توانید انواع پست های سفارشی ایجاد کنید، جداول جدیدی را به پایگاه داده خود اضافه کنید تا رشته های محبوب را پیگیری کنید، پوشه محتویات خود را به طور خودکار به یک سرور “CDN” مانند Amazon S3 پیوند دهید … تصویر را دریافت می کنید.

تم یا پلاگین؟

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

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

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

 

ایجاد اولین پلاگین شما

برای ایجاد یک افزونه، همه چیزهایی که باید انجام دهید این است ایجاد یک پوشه و سپس یک فایل تک با یک خط از محتوا ایجاد کنید. به پوشه wp-content / plugins بروید و یک پوشه جدید به نام awesomeplugin ایجاد کنید. داخل این پوشه جدید یک فایل به نام awesomeplugin.php ایجاد کنید. فایل را در یک ویرایشگر متن باز کنید و اطلاعات زیر را در آن قرار دهید:

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

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

 

PlugIns ساختاری

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

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

به طور کلی، هدف قرار دادن تعادل بین ساختار طرح، قابلیت استفاده و مینیمالیسم است. پلاگین خود را در صورت لزوم به چندین فایل تقسیم کنید، اما بیش از حد فرار نکنید. به نظر من مفید است به ساختار پلاگین های محبوب مانند WP-PageNavi و Akismet نگاه کنید.

 

نام پلاگین شما و توابع آن

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

شایع ترین راه استفاده از پیشوند منحصر به فرد است. شما می توانید برای مثال “acme_excerpt” یا هر چیز دیگری که دارای احتمال کمتری از تطبیق نامگذاری شخص دیگری است، استفاده کنید.

 

ایمنی پلاگین

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

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

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

 

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

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

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

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

 

مستندات و استانداردهای کدگذاری

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

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

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

 

قرار دادن این تمرین

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

 

از قبل برنامه ریختن

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

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

 

ضبط نمایشهای ارسالی

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

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

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

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

تا کنون خیلی خوب. اما این تابع هرگز نامفهوم نیست، بنابراین در واقع استفاده نخواهد شد. این جایی است که قلاب ها وارد می شوند. شما می توانید به فایل های تم خود بروید و به صورت دستی از آنجا به آن عمل کنید. اما پس از آنکه این موضوع را تغییر دادید، این قابلیت را از دست خواهید داد، بنابراین کل هدف را شکست خواهید داد. یک قلاب، به نام wp_head که درست قبل از تگ </ head> در اکثر تم ها وجود دارد، بنابراین ما می توانیم هر زمان که wp_head اجرا می شود، تابع خود را اجرا کنیم، مانند:

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

 

بازیابی و نمایش نمایش ها

در تابع بالا، از تابع get_post_meta () برای استفاده از وردپرس استفاده می کنم، بنابراین نوشتن یک تابع جداگانه برای این ممکن است به نظر کمی خسته کننده باشد. در این مورد، ممکن است به خوبی از کار بیفتد، اما برخی از تفکر شیء گرا را ترویج می دهد، و در هنگام توسعه بیشتر افزونه، انعطاف پذیری بیشتری به ما می دهد.

این همان تکه ای از کد است که ما در تابع awepop_add_view () استفاده کردیم، بنابراین شما می توانید از این برای بازیابی تعداد مشاهده در آنجا استفاده کنید. این مفید است، زیرا اگر شما تصمیم به رسیدگی به مورد ۰ متفاوت، شما فقط نیاز به آن را تغییر دهید در اینجا. شما همچنین می توانید این را به آسانی گسترش دهید و وقتی که ما در حلقه قرار نداشته اید پشتیبانی می کنید (به عنوان مثال وقتی که شیء $ post در دسترس نیست).

تا کنون، تعداد بازدیدها فقط بازیابی شده است. حالا، بگذارید آن را نشان دهیم. شما ممکن است فکر کنید که این چیز غریب است – همه ما نیاز داریم echo awepop_get_view_count (). “نمایش ها”، نه؟ این قطعا کار خواهد کرد، اما اگر تنها یک دیدگاه داشته باشیم، در این مورد، ما نیاز به استفاده از “دیدگاه منحصر به فرد” داریم. همچنین ممکن است بخواهید آزادی برای اضافه کردن برخی از متن های پیشنهادی یا برخی از چیزهای دیگر، که در غیر این صورت دشوار است.

 

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

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

ما با فرستادن یک دسته از پارامترها به کلاس WP_Query، برای ایجاد یک شی جدید که حاوی برخی از پست ها است، شروع می کنیم. این کلاس برای ما سنگین است: ۱۰ پست منتشر شده دارای awepop_views در جدول متا پیدا کرده و به ترتیب نزولی مرتب می کنند.

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

 

بررسی اجمالی

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

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

0 دیدگاه برای “چگونه یک پلاگین وردپرسی ایجاد کنیم؟”

پاسخ دهید

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

*