Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. WordPress Plugins
Code

ساخت سیستم پیام‌رسان اختصاصی وردپرس، قسمت 1

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Creating a Custom WordPress Messaging System.
Creating a Custom WordPress Messaging System, Part 2

Persian (پارسی) translation by Pouria Parhami (you can also view the original English article)

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

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

مزایایه بسیاری در انتخاب این API های خاص وجود دارد. برخی از آنها عبارتند از:

  • پاک سازی و اعتبارسنجی (sanitization and validation)
  • آیتم‌های سفارشی منو
  • سهولت در معرفی صفحات مدیریت
  • کارکردن با انواع مختلف ورودی
  • خودکار سازی پیام‌‌های موفقیت یا شکست
  • و خیلی چیزهای دیگر

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

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

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

با توجه به آن‌چه گفته شد، بیاید شروع کنیم.

برای این دوره چه چیزی نیاز دارید

اگر هر کدام از آموزش‌های قبلی مرا مطالعه کرده باشید، می‌دانید که من هرآموزش را با دوچیز شروع می‌کنم.

  1.  تهیه لیستی از نرم‌افزارهایی که برای شروع به آن‌ها نیاز داریم.
  2. تهیه یک نقشه از جایی که هستیم، بنابراین شما می‌توانید انتخاب کنید که این سلسله آموزش را ادامه دهید یا خبر.

بیاید حالا انجامش دهیم.

محیط توسعه شما

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

  • PHP 5.6.25
  • MySQL 5.6.28
  • آپاچه (یا Nginx اگر با آن راحت هستید)
  • WordPress 4.6.1
  • ویرایش‌گر یا IDE محبوبتان

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

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

نقشه راه ما

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

  1. در این آموزش، حداقل بستر مورد نیاز برای ساخت پلاگین و چیزهایی که برای شروع نیاز داریم را خواهیم گفت.
  2. دربخش دوم، پلاگین را با اضافه کردن یک صفحه بسیار ابتدایی مدیرت وردپرس، به جلو می‌بریم. همین‌طور در سمت سرور هوک‌های سفارشی ساخته و آن‌ها را برای استفاده خود صدا می‌زنیم. همچنین زمینه را برای تنظیمات پیام رسانمان آماده می‌سازیم.
  3. در آموزش بعد، تنظیمات پیام رسانمان را با اضافه کردن، قابلیتی همچون پشتیبانی ارسال پیام‌های خطا و موفقیت گسترش خواهیم داد، هم‌چنین چند نکته در مورد امنیت نیز خواهیم گفت.
  4. در آخر با ادغام همه اینها کاررا به پایان خواهیم رساند، کارکرد آن را در عمل خواهیم دید، و پلاگین نهایی را برای دانلود شما در دسترس خواهیم گذاشت.

توجه داشته باشید در هر یک از آموزش‌ها کدهای اصلی برای دانلود شما وجود خواهند داشت; اگر چه ممکن است تمام مستندات و نکات در آن‌ها وجود نداشته باشد. در آخر، این آموزش در مورد همه این چیزهایی است که صحبت کردیم. 

اما نسخه نهایی که ارائه می‌‌شود، دقیقا شامل آن‌ها است.

شروع پلاگین

حالا می‌دانیم به چیزهای زیر برای پلاگین‌مان نیازمندیم.

  • یک صفحه ابتدایی برای مدیریت
  • یک آیتم منو برای اینکه ما را به صفحه مدیریت ببرد.
  • یک فایل خود راه انداز برای اجرای پلاگین

بیاید همه این‌ها را در کنار هم قرار دهیم تا کاربردی شوند.

آیتم منو

اولین چیز کاربردی که می‌خواهیم معرفی کنیم، اضافه کردن یک زیرمنو در منوی گزینه‌ها(Options menu) در فهرست ناوبری (navigation menu) مدیریت وردپرس است.

برای انجام این کار، ما به دو کلاس و یک فایل نیاز داریم: یک کلاس زیرمنو را نمایش می‌دهد، و کلاس دیگر صفحه زیرمنو را نمایش خواهد داد، و فایل محتوای صفحه را نمایش می‌دهد.

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

The plugins directory structure

به این معنا که دایرکتوری admin دارای زیردایرکتوری views است،  دایرکتوری admin دارای class-submenu.php  و class-submenu-page.php است. در مورد صفحه مدیریت در بخش بعدی صحبت خواهیم کرد.

بیاید هر یک از این فایل‌ها را به صورت جدا گانه نگاه کنیم.

class-submenu.php

این کلاس مسئول اضافه کردن آیتم منو در ضفحه گزینه‌ها (options page) است.

اگر شما the API call در کدکس (codex) را مطالعه کرده باشید، خواهید دید که آیتم منو را در منوی ابزار (Tools menu) معرفی کرده است، که از طریق  "Tuts+ Custom Messages" به آن دسترسی خواهیم داشت، در واقع این یک عنوان در آن منو است تا ما روی آن کلیک کرده و صفحه تنظیمات خود را ببینیم.

توجه داشته باشید که رفتار init در آن وجود دارد. این تابع add_options_page را با هوک admin_menu وردپرس ثبت می کند، پس آن درطول چرخه حیاط صفحه وردپرس. ثبت خواهد شد(ونمایش داده خواهد شد ) 

در مرحله دوم، این منو از طریق قابلیت manage_options برای همه در دسترس خواهد بود، همچنین متدرندر در submenu_page  که مطعلق به آن است را صدا خواهد زد.

مشکل ؟ هیچ صفحه زیر منویی وجود ندارد. پس بیاید اکنون کلاس آن را ایجاد کنیم.

class-submenu-page.php

کد زیر کد این کلاس است:

کلاس Submenu_Page ساده و واضح است. تمام کاری که می کند نمایش صفحه settings.php است، که تا چند لحظه دیگر مرور خواهیم کرد. 

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

صفحه مدیریت

این صفحه تنظیمان (setting page) است، ساده همانند Submenu_page  در واقع، اگر با اساس نشانه گذاری آشنا باشید، فهمیدن اینکه چه اتفاقی دارد رخ می‌دهد بسیار ساده است.

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

از همه این‌‌ها گذشته این چیزی است که ما انجام خواهیم داد.

به آن جان ببخشید (به دنیایه واقعی بیاوریدش)

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

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

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

An example of the administration page

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

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

نتیجه

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

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

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

منابع

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.