۶ بهنام مرادی
طراحی پنل Spa
جامعه وردپرس (برنامه نویسی) ایجاد شده در ۰۵ خرداد ۱۴۰۱

با سلام

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

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

  • به نظر شما اصولی‌ترین راه پیاده سازی پنل spa در وردپرس چیه ؟
  • اگر بخواییم از Vuejs برای ساخت پنل تک صفحه ای استفاده کنیم به نظر شما روش درستی هست ؟
  • مسئله ای که وجود دارد اگر vuejs برای استفاده مناسب هست بحث Routing خود وردپرس و اجرای شورتکد افزونه‌های مختلف داخل این پنل به چه صورت میشه » چون نیاز هست شورتکد هر افزونه ای داخل پنل هم به درستی اجرا بشه از جمله محتوا، اضافه شدن استایل ها، اسکریپت‌های اون افزونه و ..
  • علاوه بر مورد قبلی گاهی اوقات افزونه‌های مختلف خودشون پارامتر در url ست میکنند یا یک روتینگ اختصاصی دارند ایا امکان همگامسازی اونها هم وجود داره؟

متشکرم از کسانی که با صبر و حوصله و تخصص بالا به سوال فنی و حدود سطح بالای وردپرسی جواب میدن❤️

با سلام.

سوالتون رو به استاد منتقل خواهم کرد.

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

https://wpmudev.com/blog/creating-a-hybrid-single-page-app-wordpress-with-vuejs/

احمد اسماعیلی ۰۵ خرداد ۱۴۰۱، ۱۹:۵۸

سلام دوست عزیز

برای ایجاد spa فرقی نمی‌کنه از چه فریم ورک و کتابخونه ای استفاده کنید (Vue یا ری اکت و ...)

اجرای شورت کدها ارتباطی به سیستم routing ندارن شورت کد در واقع نمونه اجرایی یک تابع هست و فقط کافیه در route مورد نظر که شما که مثلا توسط vue پیدا سازی کردین فراخونی و قرار داده بشه

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

وحید صالحی ۰۶ خرداد ۱۴۰۱، ۰۸:۵۷

سلام و احترام

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

در ارتباط با اجرای شورتکد‌ها فرمودید که کافیست در route مد نظر فراخوانی بشه ولی در Vue باید داده پاس داده بشه که به صفحه تزریق بشه و تنها راهی که من در اینترنت پیدا کردم اینه که توسط تابع زیر تبدیل به یک object js بشه و توسط vuejs پردازش بشه

wp_localize_script( 'vue-js', 'vue_js_object',
    array(
        'shortcode' => do_shortcode('[woo-wallet]'),
    )
);

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

ایا شما در این زمینه تجربه دارید که بتوانید دقیق‌تر راهنمایی کنید ؟

یا هر کدوم از عزیزان شخصی رو میشناسه خیلی ممنون میشم راهنمایی کنند تا بتونم به یک راه حل برسم که اصلا چنین مسئله ای شدنی هست یا وقتم رو روی این داستان نزارم بهتر هست.

متشکرم

بهنام مرادی ۰۶ خرداد ۱۴۰۱، ۱۹:۵۲

سلام مجدد شما فرمودین به route پاس داده بشه ینی در url ! در حالی که شما ظاهرا رندر شدن در کامپوننت و یا استفاده در سندی هست که با route اون سند فراخونی میشه کلا شما در یک کامپوننت باید مقدار شورتکد رو می‌خواید رو بگیرید و رندر کنید اگر اینطوره و منظورتون همین هست لینک زیر می‌تونه توضیحاتی در این مورد بهتون بده:

https://www.codementor.io/@mblarsen/wordpress-shortcodes-vuejs-vue-js-5gv4op8sm

وحید صالحی ۰۷ خرداد ۱۴۰۱، ۰۷:۵۳

با سلام مجدد

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

تو چند روزی که جستوجو کردم دو راه حل ارائه شده بود که هیچ کدوم کامل نیستند یکی استفاده از پردازش شورتکد توسط ajax بود که مشکلات زیادی داشت.

مورد بعدی هم استفاده از تابع زیر بود

wp_localize_script( 'vue-js', 'vue_js_object',
    array(
        'shortcodehandler' => do_shortcode('[shortcode-goes-here]'),
    )
);

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

به هر حال از جناب صالحی و اسماعیلی عزیز متشکرم.

بهنام مرادی ۰۹ خرداد ۱۴۰۱، ۱۲:۴۹

سلام دوست عزیز

موفق باشید ?

محمد گازری ۱۹ خرداد ۱۴۰۱، ۱۵:۰۳