فهرست مقاله
حتی زیباترین کدها هم میتوانند وبسایت وردپرس شما را فلج کنند اگر افزونههای اشتباهی را انتخاب کنید.
این اغراق نیست. من وبسایتهای زیادی را دیدهام که کاملاً خوب کار میکردند، اما پس از اضافه کردن چند قطعه کد، سرعت بارگذاری آنها از ۰.۸ ثانیه به ۳ ثانیه افزایش یافت. پس از بررسیهای طولانی، مشخص شد که یک قطعه کد خاص، تعدادی کوئری غیرضروری را در پایگاه داده اجرا میکرده است.
بنابراین امروز، بیایید در مورد WPCode و Fluent Snippets صحبت کنیم، دو افزونه مدیریت قطعه کد که اغلب در جامعه وردپرس با هم مقایسه میشوند.
راستش را بخواهید، من از هر دو به طور گسترده استفاده کردهام و حتی به دوستانم کمک کردهام تا از برخی مشکلات اجتناب کنند. امروز، تمام تجربیات صادقانهام را به اشتراک خواهم گذاشت.
اجازه دهید با کمی پیشزمینه شروع کنم.
اساساً چند راه برای اضافه کردن کد سفارشی در وردپرس وجود دارد. یکی تغییر مستقیم فایل functions.php قالب است که ساده و سرراست است، اما با هر بهروزرسانی همه چیز از بین میرود؛ دیگری استفاده از یک قالب فرزند است که کمی بهتر است، اما همچنان هزینههای نگهداری بالاتری دارد؛ و راه دیگر پیدا کردن یک افزونه قطعه کد قابل اعتماد است که مدیریت و اجرای آن ایمنتر است.
WPCode و Fluent Snippets رقبای این دو مسیر هستند.
WPCode ، یک افزونهی باسابقه در جامعهی وردپرس، محصول تیم WPCode است و همیشه از شهرت خوبی برخوردار بوده است. امتیاز آن ۴.۹ از ۱۰ است؛ با وجود اینکه تنها ۳۱ نقد دارد، این امتیاز خود گویای همه چیز است.
Fluent Snippets ، محصول دیگری از تیم WPManageNinja است - بله، همان تیمی که FluentCRM را ساخته است. این افزونه بیش از ۴۰،۰۰۰ نصب و امتیاز ۴.۶ دارد، کمی کمتر از WPCode اما با چهار برابر تعداد نصب بیشتر.
این جالب است. رابطه معکوس بین حجم نصب و رتبهبندیها باید دلیلی پشت آن باشد.
تجربه ویرایشگر
WPCode از ویرایشگر ACE استفاده میکند که بگذارید به شما بگویم، سبک کاملاً سنتی وردپرس را دارد. هایلایت کد دارد، اما طرح رنگ آن نسبتاً محافظهکارانه است و تکمیل کد را فراموش کنید. اگر به VS Code عادت دارید، استفاده از آن در اینجا به شما حس عجیبی از "آه، من پنج سال به عقب سفر کردهام" میدهد.
Fluent Snippets متفاوت است؛ مستقیماً با Monaco Editor ادغام شده است.
بله، این همان ویرایشگر VS Code است. هایلایت کردن کد، تکمیل خودکار، نکات مربوط به سینتکس - کل تجربه تقریباً مشابه نوشتن کد به صورت محلی است. وقتی برای اولین بار از آن استفاده کردم، فوراً عاشق آن شدم. این همان حس "بالاخره، افزونهای که حاضر است یک ویرایشگر مناسب بسازد!" بود.
اما اینجا یک سوال مطرح میشود: آیا ویرایشگر بهتر لزوماً به معنای تجربه کاربری بهتر است؟
نامشخص.
من دوستی را در شنژن میشناسم که یک کسبوکار وبسایت محتوا را اداره میکند. او صاحب یک وبسایت است و به تنهایی بیش از سی وبسایت را مدیریت میکند. او به من گفت که عاشق WPCode است. چرا؟ چون ساده است. بخش مدیریت را باز کنید، چند بار کلیک کنید، کد ظاهر میشود و تمام. او به هیچ ویژگی فانتزی نیاز ندارد؛ او به ثبات و عملکرد بدون خطا نیاز دارد.
آن حرفها در آن زمان واقعاً مرا تحت تأثیر قرار داد.
بله، ویرایشگر موناکو عالی و بسیار قدرتمند است. اما برای کسی که هر روز بیش از سی وبسایت را مدیریت میکند، خودِ این فرآیند یادگیری، بار سنگینی است.
存储方式
بعد از بحث در مورد ویرایشگر، بیایید به سراغ چیزی جدیتر برویم.
WPCode در پایگاه داده ذخیره میشود و تمام قطعه کدها در جدول wp_options ذخیره میشوند. هر عملیات خواندن شامل یک پرسوجوی پایگاه داده است و در سناریوهای با همزمانی بالا، تعداد این پرسوجوها میتواند جمع شود.
Fluent Snippets از ذخیرهسازی فایل استفاده میکند. قطعه کدها به صورت فایلهای PHP در دایرکتوری wp-content/fluent-snippets/ ذخیره میشوند و وردپرس آنها را مستقیماً در حین اجرا، بدون نیاز به کوئریهای پایگاه داده، در کد خود لحاظ میکند.
از نظر تئوری، ذخیرهسازی فایل سریعتر و امنتر است.
چرا امنتر در نظر گرفته میشود؟ زیرا ذخیرهسازی فایل ذاتاً خطر تزریق SQL را ایزوله میکند؛ هیچ قطعه کدی در پایگاه داده وجود ندارد که بتوان آن را تزریق کرد.
اما یک اما وجود دارد.
ذخیرهسازی فایل نیز مشکلات خاص خود را دارد. هر بار که قطعه کد بهروزرسانی میشود، مجوزهای نوشتن مورد نیاز است. اگر سرور به طور نامناسب پیکربندی شده باشد، یا در برخی محیطهای میزبانی مجازی خاص، نوشتن فایل ممکن است با مشکلاتی مواجه شود. پیش از این، شخصی در گروهی شکایت کرده بود که کد پس از بهروزرسانی قطعه کد کار نمیکند و پس از بررسی، مشخص شد که مشکل مربوط به مجوزهای فایل است.
بنابراین، هیچ راه حل قطعی وجود ندارد؛ هر کدام سناریوی خاص خود را دارند.
شرایط بارگیری
اینجاست که بارزترین تفاوت بین این دو افزونه نهفته است.
بارگذاری شرطی WPCode کاملاً ابتدایی است و از بارگذاری پیشزمینه و پسزمینه پشتیبانی میکند. همچنین میتوانید آن را به صورت کلی فعال یا غیرفعال کنید. به همین سادگی.
بارگذاری مشروط Fluent Snippets فوقالعاده است؛ میتواند بر اساس نقش کاربر، قوانین URL، نوع دستگاه و حتی فیلدهای سفارشی باشد. حرفهای بودن آن بینظیر است.
这意味着什么؟
این یعنی شما میتوانید به کنترل بسیار دقیقی دست پیدا کنید. برای مثال، «بارگذاری این کد فقط در دستگاههای تلفن همراهی که URL آنها شامل /product/ است و کاربر وارد سیستم نشده است» الزامی است که اساساً دستیابی به آن در WPCode غیرممکن است، اما این یک ویژگی استاندارد در Fluent Snippets است.
البته، هزینههایی هم وجود دارد. هرچه پیکربندی پیچیدهتر باشد، هزینههای نگهداری بیشتر میشود. شش ماه بعد، جای سوال است که آیا اصلاً میتوانید شرایط و قوانینی را که نوشتهاید درک کنید یا خیر.
احساسات من
WPCode مانند یک چاقوی ارتش سوئیس است: کافی و پایدار است، اما عملکرد آن محدودیتهایی دارد.
Fluent Snippets مانند یک جعبه ابزار حرفهای است؛ میتوانید کارهای بیشتری انجام دهید، اما باید بدانید که چه کاری انجام میدهید.
راستش را بخواهید، این دو حتی در یک زمینه رقیب هم نیستند.
اگر فقط یک وبسایت شخصی یا یک کسب و کار کوچک دارید، WPCode کافی است. بزرگترین ارزش آن در مدیریت خوب کد، جلوگیری از اشکالات و تضمین عملکرد پایدار است.
اگر عملیات پیچیدهای انجام میدهید یا سایت شما منطق تجاری پیچیدهای دارد، بارگذاری شرطی Fluent Snippets میتواند نجاتبخش باشد.
کاربرد عملی: نوع محتوا نمیتواند مستقیماً کدهای کوتاه را فراخوانی کند
بسیار خب، حالا که مقایسههای اولیه را بررسی کردیم، بیایید به سراغ چند مثال عملی برویم.
بسیاری از افراد یک قطعه کد از نوع محتوا (Content type snippet) در Fluent Snippets ایجاد میکنند و سپس کدهای کوتاه (shortcodes) را در آن مینویسند.
به عنوان مثال
[nihaoya]درست است.
بگذارید به شما بگویم، من قبلاً در این دام افتادهام.
Fluent Snippets از سه نوع قطعه کد پشتیبانی میکند: نوع PHP، نوع محتوا و نوع CSS/JS.
اگر قطعه کد شما روی نوع محتوا (PHP+HTML) تنظیم شده است، موارد زیر را داخل آن بنویسید: [nihaoya]آن را تجزیه و تحلیل نمیکند؛ فقط... [nihaoya] این کاراکترها دقیقاً همانطور که بودند، نمایش داده میشوند.
این فقط متن ساده است، نه خروجی خلاصه شده.
برای اینکه شورتکد واقعاً اجرا شود، باید در تابع PHP `do_shortcode()` قرار گیرد. سینتکس آن به شرح زیر است:
<?php echo do_shortcode('[nihaoya]'); ?>
به این ترتیب، وردپرس کد کوتاه را تجزیه و تحلیل کرده و محتوای مربوطه را نمایش میدهد.
مدت زیادی طول کشید تا این را بفهمم؛ در مستندات به وضوح بیان نشده بود.
اگر قطعه کد شما از نوع PHP استفاده میکند، کار حتی سادهتر هم میشود: فقط یک عبارت `return` در تابع بنویسید، آن را با `add_shortcode` ثبت کنید، و کد کوتاه به درستی کار خواهد کرد. هیچ ابهامی وجود ندارد؛ مشکل صرفاً به نوع محتوا (Content type) مربوط میشود.
من گمان میکنم شخصی که این ویژگی را نوشته، فرض کرده که نوع محتوا (Content type) در درجه اول برای محتوای HTML است و خلاصهنویسی باید با استفاده از انواع PHP انجام شود، به همین دلیل هیچ اشاره واضحی به این موضوع در رابط کاربری وجود ندارد. با این حال، در عمل، بسیاری از افراد از هر دو نوع به جای یکدیگر استفاده میکنند که منجر به مشکلاتی میشود.
در نتیجه
WPCode برای چه کسانی مناسب است؟ وبسایتهای کوچک با نیازهای ساده و کسانی که نمیخواهند زحمت زیادی بکشند. این ابزار بلافاصله پس از نصب آماده استفاده است، یادگیری آن آسان است و عیبیابی آن آسان است.
Fluent Snippets برای چه کسانی مناسب است؟ وبسایتهای متوسط تا بزرگ با کنترل شرطی پیچیده و تمرکز بر عملکرد. ذخیرهسازی فایل به معنای سرعت اجرای سریعتر، بارگذاری شرطی به معنای کنترل دقیقتر و ویرایشگر Monaco به معنای تجربه توسعه راحتتر است.
البته این با این فرض است که شما حاضر باشید هزینه یادگیری را برای این «بیشتر»ها بپردازید.
صادقانه بگویم، اگر فقط کد گوگل آنالیتیکس یا یک اطلاعیه کپیرایت در انتهای مقاله خود اضافه میکنید، WPCode کاملاً مناسب است. واقعاً نیازی نیست که برای یک «ویرایشگر بهتر» دردسر تغییر Fluent Snippets را به جان بخرید.
با این حال، اگر سایت شما نیاز به تست A/B دارد و باید کدهای متفاوتی را بر اساس دستگاه، نقش کاربر یا نوع صفحه بارگذاری کند، بارگذاری مشروط Fluent Snippets میتواند شما را از قضاوت دستی و کدنویسی سخت نجات دهد.
یک نکته آخر.
ابزارها فقط وسیله هستند؛ ارزش واقعی آنها در این است که آیا میتوانید پتانسیل آنها را به حداکثر برسانید یا خیر.
WPCode ابزاری محبوب، پایدار، آسان برای استفاده و مناسب برای استقرار سریع است. Fluent Snippets ابزاری حرفهای است که عملکرد قویتر، کنترل شرایط انعطافپذیرتر را ارائه میدهد و برای توسعهدهندگان و وبسایتهای پیچیده مناسب است.
انتخاب افزونهها ربطی به نمایش مهارتهای شما ندارد، بلکه به این دلیل است که وبسایت شما پایدارتر، سریعتر و ایمنتر شود.
من کاملاً معتقدم که چیزی که برای شما مناسبتر است، بهترین است، نه لزوماً ویژگیهای بیشتر یا قویتر آنها.
خلاصه یک جمله
- سایت کوچک، الزامات ساده → WPCode
- سایت بزرگ، کنترل شرایط پیچیده → قطعه کدهای روان
در نهایت، یک توصیه دارم: ارزشمندترین کاوش، کسب تجربه عملی و اجرای کد است. بدون تمرین، آن را نشانهگذاری نکنید، همگی!
امیدوارم مقاله "WPCode در مقابل Fluent Snippets: کدام بهتر است؟ مقایسه افزونه و آموزش کاربردی" که در وبلاگ چن ویلینگ ( https://www.chenweiliang.com/ ) به اشتراک گذاشته شده است، برای شما مفید باشد.
لینک این مقاله را به اشتراک بگذارید: https://www.chenweiliang.com/cwl-34009.html
