جستجوی هوشمند علیرضا
Include custom post types / products / posts / products / pages etc ... with
by Alireza KMaxim · github.com/alirezakmaxim/advanced-wordpress-search- · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/alirezakmaxim/advanced-wordpress-search-/archive/refs/heads/main.zipجستجوی هوشمند علیرضا (Alireza Smart Search)
یک افزونه جستجوی ایجکس هوشمند، فوقسریع و چندمنظوره برای وردپرس و ووکامرس، همراه با معماری ماژولار جاوااسکریپت و بیلد پایپلاین پیشرفته esbuild و Tailwind CSS.
✨ ویژگیهای کلیدی
- جستجوی ایجکس بلادرنگ (Real-time AJAX) — پاسخ سریع به محض تایپ کاربر، بدون نیاز به رفرش صفحه.
- موتور جستجوی فازی و اصلاح غلط املایی — تبدیل اتوماتیک حروف عربی/فارسی (ی/ک)، تفکیک کلمات ترکیبی و سرهم با پیشوند/پسوند، و جدول نگاشت غلطهای رایج.
- جستجوی همزمان در پستها و دستهبندیها — جستجوی تفکیکشده در پستتایپهای دلخواه (محصولات، مقالات، برگهها و...) همراه با دستهبندیها و تاکسونومیها.
- سیستم مدیریت کامل رنگها در پیشخوان — امکان تعیین رنگ اصلی (Primary)، ثانویه (Secondary)، پسزمینه، حاشیه، متن، قیمت و رنگ بج اختصاصی برای هر پستتایپ با WP Color Picker.
- طراحی مدرن UI/UX PRO MAX — نوار کپسولی شناور، بج میانبر کیبورد (
Ctrl+K//)، نتایج شیشهای مات (Glassmorphism) و انیمیشنهای نرم. - پایپلاین بیلد مدرن با esbuild و Tailwind CSS — ماژولار بودن سورس JS در
assets/js/src/و باندل تکفایلی فشرده شده درassets/js/alireza-search.min.js. - امنیت و کارایی بالا — اعتبارسنجی Nonce، سیستم ضداسپم و Rate Limiting (۴۰ درخواست در ۶۰ ثانیه به ازای هر IP) و کش سرور با ترنزینتهای وردپرس.
🚀 نصب و راهاندازی
- پوشه افزونه را درون دایرکتوری
/wp-content/plugins/alireza-ajax-search/قرار دهید. - از بخش افزونهها در پیشخوان وردپرس، افزونه «جستجوی هوشمند علیرضا» را فعال کنید.
- جهت نمایش باکس جستجو در قالب، از کد کوتاه زیر استفاده نمایید:
[alireza_ajax_search]
یا در فایلهای قالب PHP:
<?php echo do_shortcode( '[alireza_ajax_search]' ); ?>
🆕 تازه در نسخه ۲.۲.۰ (بهینهسازی سرعت)
این نسخه یک بازبینی کامل عملکرد (Performance Audit) روی موتور جستجو بوده، بدون تغییر در رفتار خروجی برای کاربر نهایی:
- حذف کوئریهای اضافهی
SQL_CALC_FOUND_ROWSدر هر جستجو. - رفع N+1 کوئری تصویر شاخص نتایج (یک کوئری بهجای تا ۱۰ کوئری جداگانه).
- اعمال حداقل طول عبارت جستجو در سمت سرور (نه فقط کلاینت).
- کاهش تعداد کوئریهای
get_terms()در جستجوی دستهبندیها. - جلوگیری از پاکسازی کامل کش با هر autosave/revision.
- محدودسازی (
LIMIT) کوئریهای خام SKU/ترم و غیرفعالسازی پیشبارگذاریهای بلااستفاده. - یکیسازی منطق خواندن تنظیمات در یک متد مرکزی.
⚡ توصیهی زیرساختی برای بهترین کارایی (Persistent Object Cache)
تمام لایههای کش این افزونه (کش نتیجهی جستجو، کش دستهبندیها و Rate Limiter) از Transients API وردپرس استفاده میکنند. روی هاستی که یک Object Cache دائمی (Redis یا Memcached، همراه با object-cache.php) نصب نباشد، این توابع مستقیماً روی جدول wp_options عمل میکنند و حتی درخواستهای کششده هم حداقل یک کوئری دیتابیس اضافه میگیرند.
برای بهترین سرعت واقعی زیر بار همزمان (چند کاربر که همزمان تایپ میکنند)، نصب یک Object Cache دائمی (مثل Redis Object Cache یا Memcached) قویاً توصیه میشود — تأثیر آن روی سرعت میتواند از هر بهینهسازی دیگر در کد این افزونه بیشتر باشد.
🛠️ دستورات بیلد و توسعه (Build & Dev)
# نصب پکیجها
npm install
# بیلد نهایی CSS و JS
npm run build
# توسعه و مانیتورینگ زنده جاوااسکریپت
npm run watch:js
# توسعه و مانیتورینگ زنده سیاساس
npm run watch:css