پرش به محتویات

مشکلات شناخته‌شده

وقتی سازنده را باز می‌کنم المان‌ها روی canvas نیستند

اگر سازنده را باز کردید و المان‌ها روی canvas نیستند اما در پنل structure دیده می‌شوند، و از Cloudflare استفاده می‌کنید، این مشکل شناخته‌شده‌ای است که از conflict بین Cloudflare Rocket Loader™ / سایر قابلیت‌های بهینه‌سازی عملکرد با JavaScript سازنده Bricks ناشی می‌شود.

از Bricks 2.0 یک تنظیم آزمایشی (Experimental) برای بهبود سازگاری با Rocket Loader™ اضافه شده. آن را در بریکس (Bricks) > تنظیمات (Settings) > Builder فعال کنید و صفحه سازنده را reload کنید — المان‌ها باید درست روی canvas ظاهر شوند.

تنظیم Cloudflare Rocket Loader در Bricks

راه‌حل‌های جایگزین

روش 1) Configuration Rules

یک configuration rule برای حالت سازنده بسازید.

  1. وارد dashboard Cloudflare شوید.
  2. حساب و وب‌سایت خود را انتخاب کنید.
  3. به Rules > Configuration Rules بروید.
  4. Rule جدید بسازید، نام بدهید و Custom filter expression را انتخاب کنید
  5. Field: URI Query String
  6. Operator: contains
  7. Value: bricks=run
  8. «Then the settings are…» را پیکربندی کنید:
  9. Rocket Loader را اضافه کنید و checkbox را خالی بگذارید.
  10. سایر تنظیمات را خالی بگذارید.
  11. با کلیک «Deploy» rule را ذخیره کنید.
  12. چند دقیقه صبر کنید و hard refresh مرورگر در سازنده Bricks انجام دهید. (cache مرورگر را پاک کنید)

ایجاد Configuration Rule در Cloudflare

Expression فیلتر Rocket Loader

Then settings برای Rocket Loader

Deploy کردن rule در Cloudflare

روش 2) غیرفعال کردن Rocket Loader

Rocket Loader™ را در dashboard Cloudflare غیرفعال کنید:

  1. وارد dashboard Cloudflare شوید.
  2. حساب و وب‌سایت خود را انتخاب کنید.
  3. به Speed > Optimization بروید.
  4. تا Rocket Loader پایین scroll کنید.
  5. آن را خاموش کنید.

روش 3) غیرفعال کردن Worker Routes سایت SiteGround

اگر دو روش بالا کار نکرد و از هاست SiteGround استفاده می‌کنید، Worker ساخته‌شده توسط SiteGround را بررسی و غیرفعال کنید.

  1. وارد dashboard Cloudflare شوید.
  2. حساب و وب‌سایت خود را انتخاب کنید.
  3. به Workers Routes بروید.
  4. اگر sg_worker وجود دارد یا worker مشکوک دیگری بدون اطلاع شما تعریف شده، می‌توانید آن را حذف کنید.

Worker سایت SiteGround در Cloudflare

حذف Worker SiteGround در Cloudflare

MU Plugin گودادی باعث canvas خالی

برای کاربران GoDaddy، اگر canvas خالی دارید بدون Cloudflare Rocket Loader، علت ممکن است MU plugin تزریق‌شده توسط هاست GoDaddy باشد.

برای رفع، snippet زیر را در functions.php child theme یا از طریق افزونه code snippets اضافه کنید تا اسکریپت مشکل‌دار dequeue شود:

add_action( 'wp_enqueue_scripts', function() {
  if ( bricks_is_builder() ) {
    wp_dequeue_script( 'GoDaddy\WordPress\Plugins\Launch\PublishGuidepublish-guide-script' );
    wp_deregister_script( 'GoDaddy\WordPress\Plugins\Launch\PublishGuidepublish-guide-script' );
  }
}, 1000 );

این از تداخل MU plugin GoDaddy با رندر سازنده Bricks جلوگیری می‌کند.

کپی/چسباندن المان یا استایل کار نمی‌کند

Bricks 1.5.1 از Clipboard API برای کپی و چسباندن المان‌ها و استایل‌ها بین دامنه‌های مختلف استفاده می‌کند.

HTTPS الزامی‌است

کپی/چسباندن فقط برای صفحاتی که روی HTTPS سرو می‌شوند پشتیبانی می‌شود.

استفاده از Firefox

Firefox در خواندن از این API محدودیت بیشتری دارد که paste را مسدود می‌کند؛ بنابراین کاربر باید دستی اجازه استفاده از API را بدهد.

در Firefox این مراحل را دنبال کنید:

  1. about:config را در نوار آدرس وارد کنید
  2. روی «Accept the Risk and Continue» کلیک کنید
  3. clipboard را جستجو کنید و dom.events.asyncClipboard.readText و dom.events.testing.asyncClipboard را روی true بگذارید
  4. Firefox را restart کنید

خطای internal server (500) هنگام ویرایش صفحه اصلی با Bricks

خطای Internal Server Error 500

اگر صفحه‌ای شبیه بالا می‌بینید — خطای internal server (500) هنگام ویرایش صفحه با Bricks (اغلب گزارش‌شده برای صفحه اصلی) — logهای سرور را بررسی و پیکربندی سرور را تنظیم کنید. این خطا احتمالاً از پیکربندی امنیتی سرور است که درخواست را به وردپرس و Bricks نمی‌رساند.

برخی سرورها SecResponseBodyLimit تعریف نکرده‌اند و خطاهایی مثل این رخ می‌دهد:

ModSecurity: Output filter: Response body too large (over limit of 1048576, total not specified).

(توجه: SecResponseBodyLimit حداکثر اندازه response body پذیرفته‌شده برای buffering را تنظیم می‌کند).

این پست انجمن را برای راه‌حل‌های ممکن ببینید. اگر ادامه داشت با پشتیبانی هاست تماس بگیرید.

برای کاربران GoDaddy ممکن است لازم باشد این خط را در .htaccess (خط اول) اضافه کنید:

SubstituteMaxLineLength 10M

صفحه Blog از قالب آرشیو پست‌ها استفاده نمی‌کند

شرایط قالب برای صفحه Blog

صفحه Blog (Posts Page وردپرس در Settings > Reading) یک صفحه خاص وردپرس است و بنابراین archive نیست. برای تنظیم قالب Bricks روی صفحه Blog باید شرط قالب را Individual بگذارید و صفحه Blog را انتخاب کنید.

از SVG در المان‌های Bricks استفاده می‌کنم اما رنگش را نمی‌توانم تغییر دهم

معمولاً وقتی فایل SVG شامل inline style است که استایل‌های تولیدشده توسط سازنده Bricks را override می‌کند. برای استفاده از این SVGها با کنترل‌های استایل Bricks باید inline styleها را قبل از آپلود به نصب وردپرس از فایل SVG حذف کنید.

نمونه فایل SVG با inline style

نمونه‌ای از فایل SVG حاوی inline style

فونت‌های سفارشی در frontend کار نمی‌کنند

اگر فونت‌های سفارشی در frontend نمایش داده نمی‌شوند، احتمالاً سایت وردپرس از HTTPS سرو می‌شود اما URLهای وردپرس هنوز HTTP هستند (WordPress Settings » General).

تغییر URLهای وردپرس از http:// به https:// مشکل را حل می‌کند و فونت‌ها از این پس درست نمایش داده می‌شوند.

ویدیوی پس‌زمینه YouTube در موبایل autoplay نمی‌کند

این محدودیت از YouTube iFrame Player API اعمال می‌شود و قابل تغییر توسط ما نیست. https://developers.google.com/youtube/iframe_api_reference#Mobile_considerations را ببینید.

با این حال Vimeo و ویدیوهای محلی (mp4) باید کار کنند مگر دستگاه موبایل در حالت low-battery باشد.

Slider autoplay نمی‌کند / Animation چشمک می‌زند

احتمالاً از تنظیم reduced motion یا animation سیستم‌عامل شماست.

در Windows مطمئن شوید تنظیم «Show animations in windows» فعال است:

Show animations in windows در Windows

در macOS مطمئن شوید تنظیم «Reduce motion» فعال نیست:

Reduce motion در macOS

Invalid Post Type / خطای 404 نوع نوشته سفارشی

این مشکل احتمالاً رایج‌ترین مشکل در وردپرس است: نوع نوشته سفارشی 404 برمی‌گرداند. در بیشتر موارد اما به‌راحتی حل می‌شود.

فقط به WordPress » Settings » Permalinks بروید و «Save Changes» را بزنید.

conflict اسلاگ را بررسی کنید

اسلاگ (slug) نام URL-valid و کاربرپسند پست، صفحه، دسته، برچسب یا هر محتوایی (حتی تصاویر) در سایت است. بخشی از URL است که یک محتوای مشخص را شناسایی می‌کند.

فرض کنید صفحه «Portfolio» با اسلاگ «portfolio» دارید. حالا نوع نوشته سفارشی «Portfolio» با اسلاگ «portfolio» می‌سازید. اگر single post از portfolio را باز کنید (yoursite.com/portfolio/your-portfolio-post) باز هم 404 می‌گیرید. یا اسلاگ صفحه یا اسلاگ CPT را عوض کنید. permalink را دوباره save کنید — همه‌چیز باید درست کار کند.

تغییرات سازنده ذخیره نمی‌شوند

اگر در سازنده ذخیره می‌کنید و همه‌چیز ذخیره به نظر می‌رسد، اما پس از refresh یا در frontend تغییرات از بین رفته، ممکن است مشکل از schema پایگاه داده باشد.

به‌ویژه ستون meta_value در جدول wp_postmeta (یا prefix جدول شما، مثل psjw_postmeta) را بررسی کنید. این ستون باید «LONGTEXT» باشد تا داده حجیم ذخیره شود. اگر نوعی با ظرفیت کمتر (مثل «TEXT») باشد، داده بزرگ‌تر درست save نمی‌شود.

برای جزئیات محدودیت ذخیره‌سازی: Understanding Storage Sizes for MySQL TEXT Data Types.

وردپرس به‌طور پیش‌فرض «LONGTEXT» برای meta_value استفاده می‌کند. schema پیش‌فرض: WordPress Database Description.

برای رفع:

  1. نوع ستون meta_value در wp_postmeta (یا psjw_postmeta) را بررسی کنید.
  2. مطمئن شوید «LONGTEXT» است.

می‌توانید نوع ستون را با دستور MySQL زیر به LONGTEXT تغییر دهید:

ALTER TABLE your_prefix_postmeta MODIFY COLUMN meta_value LONGTEXT;

your_prefix_postmeta را با نام واقعی جدول جایگزین کنید، مثل psjw_postmeta.

  1. مطمئن شوید سایر ستون‌های جدول postmeta با schema پیش‌فرض وردپرس مطابقت دارند.

اگر با این تغییرات راحت نیستید یا هاست managed دارید، با پشتیبانی هاست تماس بگیرید — ممکن است پس از migration schema نادرست در سرویس‌های مختلف ادامه یابد.

دکمه Save بی‌پایان می‌چرخد به‌خاطر ModSecurity

اگر دکمه save در سازنده Bricks بی‌پایان می‌چرخد و logهای سرور به خطای ModSecurity اشاره می‌کنند، ممکن است برخی متغیرهای ModSecurity خیلی محدودکننده باشند:

  • SecRequestBodyLimit
  • SecRequestBodyNoFilesLimit
  • SecResponseBodyLimit

نمی‌توانیم تضمین کنیم برای همه مشکل شما را حل می‌کند، اما کاربران دیگر با افزایش این مقادیر مشکل را رفع کرده‌اند.

مقادیر بسته به سرور متفاوت است — ممکن است آزمایش کنید یا از هاست بخواهید تغییر دهد.

Indexer فیلتر پرس‌وجو: بدون پیشرفت

Indexing in Progress در المان فیلتر

اگر المان فیلتر در سازنده همچنان «Indexing in Progress» نشان می‌دهد، طبق این مقاله روی «Continue Index Job» کلیک کنید.

Indexer گیرکرده بدون پیشرفت

اگر jobهای indexing در صف pending می‌مانند بدون پیشرفت، ممکن است ruleهای firewall فرآیند پس‌زمینه را block کنند.

تنظیمات firewall سایت را بررسی کنید یا با پشتیبانی هاست تماس بگیرید. اگر سایت با HTTP Authentication محافظت شده، snippet کد را در functions.php child theme هم اضافه کنید.

برای کاربران با Cloudflare proxy فعال، Bot Fight Mode باید غیرفعال باشد. این راهنما را برای جلوگیری از false positive ببینید.

جلوگیری از Queryهای کند در داده پویای Media/Attachment

وقتی با افزونه‌هایی مثل ACF، Meta Box یا JetEngine فیلدی برای تصویر یا attachment می‌سازید، توصیه می‌شود return value فیلد object یا ID باشد نه URL.

نمونه نوع فیلد:

  • ACF: Image، Gallery، File
  • JetEngine: Media، Gallery
  • Meta Box: File Input، Image Select
  • Toolset: Attachment URL to Post ID

این توصیه مهم است چون Bricks برای بازیابی داده اضافی تصویر (ابعاد، اندازه‌های موجود) با مقادیر URL از function وردپرس attachment_url_to_postid استفاده می‌کند. در سایت‌های با پست زیاد این function resource-intensive است و بارگذاری صفحه را کند می‌کند.

با return به‌صورت object یا ID، Bricks مستقیماً به داده لازم دسترسی دارد — عملکرد بهتر و احتمال query کند کمتر.

Slider autoplay نمی‌کند / انیمیشن‌ها کار نمی‌کنند

اگر انیمیشن‌های سایت کار نمی‌کنند یا slider autoplay نمی‌کند، ممکن است به تنظیم «Reduce motion» دستگاه مربوط باشد — قابلیت دسترسی که Bricks رعایت می‌کند. برای دیدن انیمیشن‌ها:

  • در Windows: «Show animations in windows» فعال باشد.
  • در macOS: «Reduce motion» فعال نباشد.

المان‌های orphaned

در موارد نادر داده المان Bricks خراب می‌شود. مثلاً والد (مثل Section) حذف شده اما childها به‌درستی حذف نشده‌اند — از bug یا import قالب شخص ثالث با داده corrupt. این المان‌های باقی‌مانده دیگر به والد معتبر لینک نیستند و orphaned elements نامیده می‌شوند.

Orphaned elements در سازنده یا frontend رندر نمی‌شوند اما در داده صفحه باقی‌اند و می‌تواند مشکلات غیرمنتظره ایجاد کند:

  • متن orphaned در WPML Advanced Translation Editor
  • شمارش نادرست المان فیلتر
  • بارگذاری استایل یا اسکریپت استفاده‌نشده (مثل کتابخانه آیکون)

تشخیص و پاک‌سازی orphaned elements

از Bricks 2.0 می‌توانید orphaned elements را از داخل سازنده تشخیص و حذف کنید.

Bricks هنگام load سازنده خودکار orphaned elements را بررسی می‌کند. همچنین:

  1. «Check for orphaned elements on builder save» را در تنظیمات Bricks (Bricks Settings) → General → Data integrity فعال کنید تا هر save اسکن شود.
  2. &check=orphaned به URL سازنده اضافه کنید تا دستی هنگام save اسکن trigger شود (برای debug مفید است).

وقتی فعال باشد، Bricks هنگام load و save orphaned elements را بررسی می‌کند. اگر یافت شود اعلان با گزینه Clean up می‌بینید. با کلیک orphaned elements از صفحه فعلی حذف می‌شوند.

پس از cleanup صفحه را مرور کنید. اگر مشکلی بود undo بزنید.

بررسی orphaned elements سراسری سایت

از تنظیمات Bricks (Bricks Settings) → General → Data integrity کل سایت را اسکن کنید. روی «Start: Orphaned elements review» کلیک کنید. Bricks همه قالب‌ها، صفحات و هر post type با Bricks را crawl می‌کند و موارد دارای orphaned elements را لیست می‌کند.

اگر مشکلی نباشد «No orphaned elements found» می‌بینید. اگر یافت شود «Clean up all orphaned elements» برای حذف در همه پست‌های affected در دسترس است.

قبل از cleanup backup بگیرید. پس از تأیید Bricks orphaned elements را از هر پست لیست‌شده حذف می‌کند.