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

برای اتصالش به وردپرس چون قصد داشتیم از یکی از Page Builderهای وردپرس استفاده کنیم به خاطر مزیتهای Elementor رفتیم سراغ این پلاگین و خب چون بنا بود کل قالب رو به تنهایی پیادهسازی کنم شروع کردم به جستجو درمورد اینکه چه جوری میتونم Widgetهای اختصاصی برای Elementor داشته باشیم.
تو جستجوی اولیه خودم رسیدم به اینکه این پلاگین داره خیلی عالی از ویجتهای خود وردپرس پشتیبانی میکنه و منم که تو نوشتن Custom Widgetهای وردپرس مشکلی نداشتم پس دیگه همه چی حله ? که خب کاملا اشتباه میکردم نه که فک کنید Elementor پشتیبانی نمیکنهها نه. من برای این پروژه به یه سری فیلد احتیاج داشتم که باید حتما از ACF برای مدیریتشون استفاده میکردم و خب Elementor و ACF بودن که با هم هماهنگ نبودن، به این صورت یکی از پیش فرضهای من یعنی استفاده از ACF به صورت جدی به مشکل خورد.
تصمیم گرفتم یکم سرچ کنم شاید کسی به این مشکل خورده باشه و بشه به یه شکلی این مورد رو حل کرد و پس از یکم گشتن دیدم که بلهههه فقط مشکل من نیست و خیلی از آدما به این مشکل خورد و البته یک راه حل براش پیشنهاد داده بودن و اونم اضافه کردن یه قطعه کد به هسته اصلی Elementor بود که من زیاد ازش خوشم نمیومد چون برای به روزرسانیهای آینده هم ما و هم بچههای پارسپک رو میتونست دچا مشکل کنه. اینجا بود که بیخیال استفاده از ACF تو قسمت ویجتها شدیم و من دوباره شروع به جستجو کردم.
درنهایت رسیدم به یک پلاگین خیلی ساده که برای Elementor نوشته شده بود و تقریبا 5 یا 6 تا ویجت کوچیک اضافه میکرد که خب من به هیچ کدوم از ویجتها احتیاج نداشتم واسه همین تصمیم گرفتم این پلاگین رو تست کنم و ببینم میتونم به چیز بدرد بخوری برسم یا نه و خب نتیجهاش برای اولین پروژه خیلی خوب بود برای اینکه من اون پلاگین رو تغییر دادم و تمام ویجتهایی که احتیاج داشتم رو روی بستر اون پلاگین نوشتم.
حالا دو تا کار کوچیک باید انجام میدادم تا مطمئن شم توی به روزرسانی برای این پلاگین که حالا هیچ شباهتی به پلاگین قبلی نداشت مشکلی پیش نمیاد:
مورد اول رو که قبلا باهاش کار کرده بودم و پیادهسازیش کار سختی نبود و مورد دوم هم با یکم جستجو و کمک از دوستان حل شد و حالا میتونستم مطمین باشم که پلاگینی که نوشتیم فقط به صورت دستی قابل به روزرسانی هست و حالا باید میرفتیم سروقت پیاده سازی ویجتهایی که برای قابل جدید پارسپک بهش احتیاج داشتیم.
بعد از این که این مورد حل شد باید میرفتم سراغ طرح و Componentهایی که باید به یه Widget جدا تبدیل میشدن رو شناسایی میکردم اینجوری لازم نبود برای هر قسمت حتما حتما یک Widget جدا نوشته میشد بلکه کافی بود تفاوتهایی که داشتن رو پیدا میکردم و یه سری تنظیمات در رابطه به اون تفاوتها ایجاد میکردم تا Sectionهای مشابه قابلیت تبدیل شدن بهم رو داشته باشن. اینجوری یه حجم زیادی از کار کم میشد و ما میتونستیم بهینهتر قالب رو بنویسیم.
تو قسمت بعد یک نمونه کد از نحوه نوشتن Widget رو قرار میدم و قسمتهای مختلفش رو براتون شرح میدم.