Debugging in WordPress | WordPress এ আমি যেভাবে ডিবাগিং করি
Tags: wordpress, debug
Published: 2022-10-09 15:07:38

> ক্লায়েন্ট এর জন্য হোক বা নিজের কাজের প্রয়োজনে হোক, প্রায় সময় আমাদেরকে বিভিন্ন সমস্যা Devbug/Investigation এর প্রয়োজন পরে। আমার অভিজ্ঞতা থেক আমি যেভাবে দ্রুত ডিবাগিং করে একটা সমস্যার সম্ভাব্য কারণ অথবা সমাধান বের চেষ্টা করি, তা আপনাদের সাথে এখানে শেয়ার করেছি।

**👉 Plugin:- [Simple Admin Language Change / AS English Admin
](https://wordpress.org/plugins/simple-admin-language-change/)**ক্লায়েন্ট এর ওয়েবসাইট অন্য ভাষার হলে প্রয়জনীয় সেটিংস খুঁজে পেতে সময় লেগে যায়। এ রকম ক্ষেত্রে উপরের যে কোন একটা প্লাগিন ইন্সটল করে নিলে Admin Bar থেকে এক ক্লিকেই এডমিনের ভাষা অন্য যে কোন ভাষা থেকে ইংলিশে সুইচ করে ফেলা যায়। এতে করে দ্রুত প্রয়জনীয় সেটিংস খুঁজে পাওয়া যায়।

**👉 Plugin:- [Query Monitor](https://wordpress.org/plugins/query-monitor/)**
অসাধারণ একটা প্লাগিন! এই প্লাগিন টা থেকে অনেক ইনফরমেশন পাওয়া যায়। এটার ফিচারও অনেক, অল্প কথায় এটার সব ফীচার বলা সম্ভব না। কেউ এই প্লাগিন টা ইউজ না করে থাকলে ইন্সটল করে ফিচার গুলো দেখতে পারেন।
ডিবাগিং করার আগে এই প্লাগিন টা অবশ্যই ইনস্টল থাকা উচিত।

এটার কিছু বেসিক Use Case হচ্ছে -
- বর্তমান পেজ এ কোনো ধরনের PHP Error / Warning পেলে Admin Bar এ ইনফরমেশন সহ রেড মার্ক করে দিবে। Admin Bar এ ক্লিক করলে কোথায় Error / Warning আছে উল্লেখ করা থাকে। তাই খুব দ্রুত Error / Warning ডিটেক্ট করা যায়।
- Ajax Request থেকে কোনো Error / Warning পেলে Admn Bar এ রেড মার্ক করে নোটিফাই করবে।

**👉 Check Browser Console**
যদি মনে হয় যে প্রব্লেমটা ব্রাউজার ইন্টারঅ্যাকশন/জাভাস্ক্রিপ্ট রিলেটেড হওয়ার সম্ভাবনা আছে, তাহলে আগেই Frontend / Admin এর যে পেজ এ প্রবলেম টা আছে, সেখানে ব্রাউজার কনসোল চেক করে নেই। যেমন -
- ফন্টেন্ট এ স্লাইডার কাজ করছে না
- “Load More” বাটন এ ক্লিক করার পর পোস্ট আসতেছে না। ইত্যাদি..
কনসোল এ Error / Warning পাওয়া গেলে ওখান থেকে সম্ভাব্য কারণ পাওয়া যেতে পারে, এতে করে অন্য কিছু চেক করে সময় ব্যায় করতে হয় না আর।

**👉 Permalink Flush**
অনেক সময় কাস্টম পোষ্ট টাইপ এর সিঙ্গেল/ডিটেইলস পেজ ভিজিট করলে 404 Not Found পেজ আসে। অনেকবার এমন হয়েছে, প্লাগিন/থিম এর কোড চেক করে জব্দ হয়ে দেখি যে কোথাও কোনো প্রব্লেম নাই! পরে পার্মালিংক ফ্ল্যাশ করার পর এক ক্লিকেই সমস্যা সমাধান হয়ে যায়।

যদিও প্লাগিন গুলো কাস্টম পোষ্ট টাইপ রেজিস্টার করার পর প্রোগ্রামেটিক্যালি পার্মালিংক ফ্ল্যাশ করে দেয় বাট সামহাউ অনেক সময় হয়ত ঠিকভাবে ফ্ল্যাশ হয় না। তাই যখন মনে হয় কোনো পেজ এক্সপেকটেড কনটেন্ট আসার পরিবর্তে 404 Not Found পেজ পাচ্ছে অথবা কন্টেন্ট আসতেছে না তখন সবার আগে পার্মালিংক ফ্ল্যাশ করে নেই। যেমন- পার্মালিংক রিলেটেড এক্টা কমন প্রব্লেম হচ্ছেঃ
- Elementor প্লাগিন ইন্সটল করার পর একটা টেমপ্লেট ক্রিয়েট করে ওই টেমপ্লেট এর “View/Details” এ গেলে কনটেন্ট অনেক সময় আসে না। বেশিরভাগ সময়ে পার্মালিংক ফ্লাশ করলে সমাধান হয়ে যায়।

**👉 Debug Log Check by ["WP Debugging” Plugin](https://wordpress.org/plugins/wp-debugging/)**
PHP ভার্সন Compatibility অথবা অন্য যে কোনো কারণে অনেক সময় সাইট এর কোনো ফীচার এক্সপেকটেড বিহেভিওর করে না। তখন এই প্লাগিন টা ইনস্টল করে নেই।
সাইট এ WP_DBUG এনাবল না থাকলে এই প্লাগিন টা একটিভ করার সাথে সাথে ডিবাগ মুড এনাবল করে দেয় এবং Admin Bar এ থাকা “Debug Quick Look” মেনু থেকে খুব সহজেই সাইট এর লগ চেক করে নেওয়া যায়।

এভাবে সাইটের যে কোন যায়গায় Error / Warning থাকলে সেটার লগ দেখে, খুব সহজেই কোথায় প্রব্লেম আছে ও এর সম্ভাব্য কারণ বের করা যায়।

**👉 Plugin:- [Health Check & Troubleshooting](https://wordpress.org/plugins/health-check/)**
উপরের ধাপ গুলো ফলো করার পরেও অনেক সময় প্রব্লেম এর কোনো ক্লু পাওয়া যায় না। তখন এই প্লাগিন টা দারুন কাজের!

এটার মাদ্ধ্যমে এক ক্লিকই এ সাইটের ওয়ার্ডপ্রেস ডিফল্ট থিম কে একটিভ করে বাকি সব প্লাগিন কে “Deactivate” করে ফেলা যায় এবং সবচেয়ে মজার ব্যাপার হচ্ছে- প্লাগিন / থিম গুলো শুধু “Admin” এর জন্যই “Deactivate” হবে, ভিসিটর দের ক্ষেত্রে কোন ইফেক্ট ফেলবে না!

এই প্লাগিন দিয়ে প্রথমে একটা একটা করে “Theme” সুইচ করে সাইট চেক করে দেখে সিদ্ধান্ত নেওয়া যায় যে প্রব্লেম টা থিম থেকে হচ্ছে কিনা। যদি থিম থেকে না হয় তাহলে তাহলে, আবার একটা একটা করে করে প্লাগিন “Activate” করে কালপ্রিট প্লাগিনটাকে বের করে ফেলা যায়।

কালপ্রিট প্লাগিন বের করে ফেলার পর Troubleshoot মুড disable করে করে দিলে সাইট আগের অবস্থায় মানে- আগে যে থিম এবং প্লাগিন গুলো এক্টিভ ছিলো ঐ অবস্থায় ফিরে আসব। এতে করে দ্রুত কোন থিম/প্লাগিন থেকে প্রব্লেম হচ্ছে এটা ডিটেক্ট করা যায়।

**👉 Plugin:- [Plugin Detective – Troubleshooting](https://wordpress.org/plugins/plugin-detective/)**
Health Check & Troubleshooting প্লাগিনের অল্টারনেটিভ প্লাগিন এটা। এটাও ভালো কাজের!

**👉 Clear Cache**
সব কিছু করার পখন যখন মাথা 😣 হ্যাং হয়ে যায়, কোনো ক্লু খুঁজে পাওয়া যায় না। তখন সাইটে ক্যাশিং প্লাগিন আছে কিনা চেক করি, ক্যাশিং প্লাগিন থাকলে সেখান থেকে ক্যাশ ক্লিয়ার করে নেই। অনেক কিছু ইনভেস্টিগেট করার পর অনেক সময় দেখা যায় যে প্রব্লেম ক্যাশে ছিল!

**👉 Make Sure That The Plugins / Themes are Updated**
কোনো প্লাগিন/থিম এর সাথে Compatibility অথবা অন্য কোন প্রব্লেম পাওয়া গেলে তখন নিশ্চিত হতে হবে যে, ঐ থিম/প্লাগিন টা লেটেস্ট ভার্সন কিনা? কারণ থিম/প্লাগিনের ডেভলোপাররা প্রতিনিয়ত প্লাগিন/থিম এর বিভিন্ন প্রবলেম সলভ করে আপডেট করে। এমনও হতে পারে, যে প্রব্লেম টা ফেস করতেছি এটা অলরেডি লেটেস্ট ভার্সন এ সলভ করা হয়েছে।

**👉 xDebug Extension**
ডেভেলপমেন্ট এর সময় var_dump / print_r ফাংশন ইউজ করে অনেক সময় ডিবাগ করি। পেজ এ গিয়ে বার বার var_dump / print_r না করে IDE এর মধ্যেই xDebug এর মাধ্যমে var_dump / print_r এর থেকেও ভালোভাবে ভেরিয়েবল/ফাংশন চেক করা যায়।

Details: [https://xdebug.org/](https://xdebug.org/)

**👉 Optional - Body Tag’s Class / WooCommerce Product’s Grid CSS Class**
Frontend এর কোনো পেজে থাকার সময় কিছু ইনফরমেশন জানার প্রয়োজন পরতে পারে। যেমন-

- যে পেজে আছি ঐ পেজ টা “Post” / “Page” অথবা “Custom Post Type” কিনা।
- সাইট এ বর্তমানে কোন থিম এক্টিভ আছে।
- “Post” / “Page” অথবা “Custom Post Type” এর ID
- পেজ এর "Template Type" যেমন:- Archive, Single, Author etc
- পেজ টা কোন কাস্টম টেমপ্লেট ফাইল থেকে লোড হচ্ছে কিনা। যেমনঃ theme-name/template-about-us.php
- আরো জানার জন্য ফ্রন্টএন্ড এ বডি ট্যাগের মদ্ধ্যে ক্লাসগুলো দেখতে পারেন।
- এছাড়াও WooCommerce product ক্লাস থেকে নিচের ইনফরমেশন গুলো পাওয়া যায়
--Product ID, Stock Status, Product Category, Product type, Tax info আরো অনেক ইফনরমেশন।

পেজ এর বডি ক্লাস এবং উকমার্স প্রডাক্ট লুপের ক্লাস থেকে উপরের ইনফরমেশন গুলো ছাড়াও আরও অনেক ইনফরমেশন পাওয়া যায় যা ডিবাগিং এর সময় কাজে লাগে।

উল্লেখিত বিষয় গুলো ফলো করার পরোও অনেক সময় কোন সমস্যার সমাধান পাওয়া নাও যেতে পারে। তবে আমি মনে করি উপরের বিষয়গুলো ডিবাগিং প্রসেস ফাস্টার করতে সহায়তা করবে :)

> আমি জাস্ট আমার ডিবাগিং প্রসেস টা শেয়ার করেছি, একেক জনের চিন্তাধারা এবং কাজের পদ্ধতি একেক রকম।আপনাদের কারো কোনো কোন নিজস্ব পদ্ধতি অথবা টুল যেটা ডে টু ডে লাইফে ইউজ করেন, কমেন্টে জানাতে পারেন এতে আমি সহ যারা এই পোস্ট দেখবে তাদেরও জানা হয়ে যাবে।