اشکال زدایی و بهبود عملکرد سایت وردپرسی با افزونه Query Monitor
این سناریو را تصور کنید: شما در حال کار بر روی یک پروژه توسعه سایت با وردپرس هستید و تعداد دوازده یا بیشتر پلاگین نصب کرده اید. با این حال، سایت شما کاملاً مطابق با چیزی که در ذهن شما است، نمی باشد. برای رفع مشکل همه موارد را بررسی کرده اید: هاست مشکلی ندارد، هیچ خطایی مربوط به JavaScript یا PHP مشاهده نمی شود و ظاهر همه چیز به خوبی کار می کند، اما همچنان عملکرد سایت شما مطلوب نیست. شک دارید که یک یا چند افزونه نصب شده باعث بروز این مشکل شده اند، اما چگونه می توانید متوجه شوید کدام افزونه باعث ایجاد اختلال در سایت شده است؟
تصویر(1)
روش معمول شناسایی یک افزونه مشکل ساز، غیرفعال کردن پلاگین ها به صورت تک به تک است تا زمانی که مشکل مشاهده شده رفع گردد. با این وجود، با نصب یک افزونه مناسب، می توانید با سرعت و دقت بیشتری مشکلات سایت وردپرسی را مشخص و رفع اشکال کنید.
افزونه ای که می تواند مشکل ذکر شده را رفع کند، Query Monitor نام دارد که هم اکنون می توانید به صورت رایگان از مخزن وردپرس آن را دریافت کنید. این افزونه تاکنون بیش 100 هزار نصب فعال داشته است و به صورت منظم برای آن بروزرسانی ها ارائه می شود.
Query Monitor چیست؟
Query Monitor یک افزونه وردپرسی است که باعث می شود توسعه دهندگان در مرحله اشکال زدایی، عملکرد کلی سایت وردپرسی را بهبود ببخشند.
بعد از نصب افزونه، در نوار بالایی پیشخوان وردپرس می توانید جزئیات مربوط به زمان لود صفحه ای که در آن هستید را مشاهده کنید. با کلیک بر روی منوی افزونه در بالا صفحه می توانید تعداد کوئری های اجرا شده در صفحه فعلی، زمان بارگیری ، فیلترها بر اساس نوع کوئری و جزئیات مختلفی را مشاهده کنید. در نتیجه باعث می شود توسعه دهندگان دید بهتری از علت ایجاد مشکلات در وب سایت داشته باشند.
نصب افزونه Query Monitor
طبق تصویر زیر برای نصب افزونه Query Monitor وارد پیشخوان وردپرس شده و سپس از سایدبار سمت راست و بخش افزونه ها بر روی افزودن (شماره1) کلیک نمایید. سپس در کادر جستجو (شماره2)، افزونه Query Monitor را جستجو کرده و در نهایت بر روی نصب (شماره3) کلیک کنید.
تصویر(2)
پس از نصب افزونه و فعالسازی آن در وردپرس، در منوی بالای پیشخوان وردپرس و سایت می توانید به صورت خلاصه موارد مربوط به سرعت لود و … را مشاهده کنید.
تصویر(3)
همانطور که در تصویر زیر مشاهده می کنید با کلیک بر روی گزینه ظاهر شده در پیشخوان وردپرس،می توانید به جزئیات کامل و جامعی در خصوص کوئری هایی که در پایگاه داده ایجاد می شوند، اسکریپت ها و CSS بارگیری شده، hook های فعال و HTTP API call ها دسترسی پیدا کنید.
تصویر(4)
ویژگی های Query Monitor
Query Monitor ابزاری برای توسعه دهنده های وردپرس است. افزونه مذکور به شما امکان بازرسی و اشکال زدایی بخش های مختلف سایت از جمله موارد زیر را می دهد:
-
Database queries
-
PHP errors
-
Hooks and actions
-
Enqueued scripts and styles
-
Theme template files
-
Languages and translations
-
Rewrite rules
-
Block editor blocks
-
HTTP API calls
-
و سایر موارد…
مروری بر آنچه بعد از هر بار بارگذاری صفحه، توسط افزونه نشان داده می شود:
نمایش کوئری های پایگاه داده: از جمله اعلان های مربوط به درخواست های کند، تکراری یا اشتباه، فیلتر کردن بر اساس نوع کوئری (SELECT ،UPDATE ،DELETE و غیره)، مواردی که در ایجاد مشکل دخیل هستند (پلاگین، پوسته، هسته وردپرس) و فراخوانی function ها که تاثیر زیادی در عملکرد سایت دارند.
همچنین ویژگی های پوسته نیز در این بخش نشان داده می شوند که شامل تمام کوئری های ایجاد شده توسط پوسته نصب شده وردپرس است. ویژگی پوسته همچنین قسمت هایی از پوسته را که بارگیری نشده است را نشان می دهد.
خطاهای PHP : ویژگی PHP Errors اجزای منبع و مکان درخواست های ایجاد کوئری را نشان می دهد.
توجه: همه کوئری های موجود در Query Monitor جدی نیستند و معمولا یک یا دو مورد است که باعث ایجاد مشکل می شود.
AJAX Calls
سایت های پویای وردپرسی فراخوانی Ajax زیادی را برای ارسال و واکشی داده ها به صورت real-time و بدون بارگذاری صفحه وب انجام می دهند. Query Monitor این درخواست ها را به همراه سایر اطلاعات مفید در خصوص رفع اشکال نشان می دهد. این اطلاعات می تواند به توسعه دهنده در پیدا کردن هرگونه خطا کمک کند.
REST API
اگر اجازه نظارت بر Query Monitor را دارید، می توانید اطلاعات ارائه شده در داخل عنوان درخواست API معتبر WordPress REST را اشکال زدایی کنید. در حال حاضر، این افزونه فقط از خطاهای PHP و استفاده از حافظه پشتیبانی می کند.
احراز هویت
به طور پیش فرض، فقط مدیر سایت می تواند لاگ های مربوط به Query Monitor را مشاهده کند. با این حال، می توانید یک کوکی احراز هویت پیکربندی کنید که به شما امکان می دهد لاگ ها را حتی در صورت ورود به سیستم کاربر نیز مشاهده کنید.
چرا Query Monitor برای توسعه دهندگان مفید است؟
وردپرس دو عملکرد ساده را ارائه می دهد: get_num_queries () و timer_stop (). همانطور که از نام آنها مشخص است، get_num_queries () تعداد کوئری های پایگاه داده ایجاد شده در هنگام اجرا و timer_stop () تعداد ثانیه های مورد نیاز برای تولید صفحه را برمی گرداند.
بررسی بخش های مختلف افزونه
Overview
تب اول یا "Overview" نمای کلی از وب سایت شما را ارائه می دهد. در این تب زمان تولید صفحه، حداکثر استفاده از حافظه و زمان اجرای کوئری ها در پایگاه داده نمایش داده می شود.
تصویر(5)
Database Queries
هر زمان که کاربر هر اطلاعاتی را درخواست می کند یا می خواهد اطلاعات را ارسال کند، یک کوئری در پایگاه داده ایجاد می شود. Query Monitor این کوئری را ردیابی می کند و آن را در بخش کوئری های دیتابیس به نمایش می گذارد تا شما به عنوان کاربر بتوانید ببینید کدام کوئری ها با موفقیت اجرا شده اند و کدام یک با مشکل روبرو شده اند.
تصویر(6)
Request
ویژگی "Request"، کوئری های متغیر و سفارشی را به کاربر نمایش می دهد. همچنین رشته های کوئری مرتبط موجود در داخل یک درخواست را ارائه می کند.
تصویر(7)
Admin Screen
این بخش فعالیت های انجام شده در صفحه مدیریت وردپرس را نشان می دهد. این مورد مولفه هایی را که از پنل مدیر قابل دسترسی هستند لیست می کند و خطایی را به دلیل در دسترس نبودن فایل PHP نشان می دهد. در این بخش فهرستی از اجزای پنل مدیریتی و خطایی که به دلیل در دسترس نبودن فایل های php بوجود می آید، قابل رویت است.
تصویر(8)
Scripts
هنگامی که وارد تب "Scripts در Query Monitor" می شوید، تمام اسکریپت ها و استایل های موجود در داخل درخواست را می توانید مشاهده کنید. همچنین، هر اسکریپت شکسته یا بی پاسخ را برای شما هایلایت می کند تا براحتی بتوانید ان را تشخیص دهید.
تصویر(9)
Styles
ممکن است در بعضی مواقع، فایل CSS خاصی بارگیری نشده و باعث بهم ریختگی استایل صفحه سایت شما شود. این بخش به استایل شیت های CSS Style پرداخته و به شما در شناسایی فایلهای منبع در پشت هر کوئری کمک می کند.
تصویر(10)
Hookها و Actionها
Hookها و Actionها در هر سایت وردپرسی نقش مهمی دارند زیرا به شما امکان می دهند با استفاده از function های از پیش تعریف شده و ارائه شده توسط خود وردپرس، عملکردی دلخواه ایجاد کنید. با انجام این کار، گاهی اوقات وب سایت شما خراب می شود و عیب یابی خطا می تواند یک کار خسته کننده باشد.
Query Monitor دارای ابزاری داخلی برای شناسایی خطاهای ناشی از Hookها و Actionها است. با این کار می توانید Hookها و Actionها را بر اساس هسته، پوسته یا پلاگین فیلتر کنید. همچنین نام کامل و مرجعی که می تواند در هسته برای اهداف اشکال زدایی یافت شود را ارائه می دهد.
تصویر(11)
Languages
در صورت داشتن یک وب سایت چند زبانه، برگه "Language" هرگونه فایل خراب یا غیرقابل دسترسی را شناسایی می کند و همچنین تنظیمات زبان را نشان می دهد.
تصویر(12)
HTTP API Calls
این برگه تمام درخواست های سمت سرور، کد پاسخ، گزارش timeout و درخواستهای ناموفق را نشان می دهد. این ویژگی بسیار مفید است زیرا قادر هستید پاسخ را در به صورت real-time مشاهده کنید و به شما کمک می کند تا کد سمت سرور را به طور موثر اشکال زدایی کنید.
تصویر(13)
Transient Updates
وردپرس قادر است پاسخ API را در پایگاه داده خود ذخیره کند زیرا برخی از API ها فقط تعداد معینی از درخواست ها را در یک زمان مشخص مجاز می دانند. تب "Transient Updates این Transient" را نشان داده و همچنین اندازه و مؤلفه را نمایش می دهد.
تصویر(14)
Capability Checks
به طور پیش فرض، این قابلیت غیرفعال است و با قرار دادن کد در داخل فایل wp-config.php می توان آن را فعال کرد. این تب بررسی قابلیت ها را برای هر کاربر در این صفحه انجام داده و پارامترها را همراه با نتایج نشان می دهد.
تصویر(15)
Environment
این یک نمای کلی از محیط وردپرس است و شامل سه بخش برای PHP ،Database و WordPress می باشد. در داخل هر بخش، اطلاعات مفیدی درباره Environment مانند نسخه MySQL، محدودیت حافظه PHP، نسخه وردپرس و ... نمایش داده می شود.
تصویر(16)
Conditionals
تمام شرط های وردپرس را بر اساس درخواست فعلی نشان می دهد.
با کمک این افزونه می توانید در زمان کوتاهی مشکلات سایت و وردپرس را شناسایی و برای رفع آن اقدام نمایید.
تصویر(17)