ওয়ার্ডপ্রেস গ্লোবাল গোলমাল (ভেরিয়েবল) – পর্ব ২

ঘুরতে ঘুরতে একটা পান্ডা দিয়ে যাচ্ছে মুরগির আন্ডা! সে যাইহোক যেমনটা কথা দিয়েছিলাম তেমনটাই হবে। আজকের পর্বে আমরা লুপ গ্লোবাল ভেরিয়েবল গুলি সম্পর্কে জানবো। কিন্তু লুপ গ্লোবাল ভেরিয়েবল নিয়ে জানার পূর্বে আমাদের এটা স্পষ্ট হওয়া প্রয়োজন যে লুপ বলতে আমি কি বুঝাচ্ছি, ওয়ার্ডপ্রেস কি বলছে আর আপনি কি বুঝতেছেন, তাই নয় কি? নয়তো জেনারেল লুপের কনসেপ্ট আর ওয়ার্ডপ্রেসের লুপ তালগোল পাকিয়ে যাবে! আপনি যদি ওয়ার্ডপ্রেসে নতুন হয়ে থাকেন তবে সত্যি কনফিউজড হতে পারেন যেমনটা লারাভেলের ফ্যাসাডের নাম শুনে কনফিউজড হতে পারেন*।

দ্যা লুপ (The Loop)

The Loop is PHP code used by WordPress to display posts.
— Codex

কোডেক্স যেমন বলে ওয়ার্ডপ্রেসের লুপ তেমনটাই, এর বেশি কিছু না। এটা মূলত একটি PHP লুপ যার মূল উদ্দেশ্যই হলো পোস্টের কনটেন্ট দেখানো (পোস্টটি যেকোনো পোস্টটাইপের হতে পারে)। চলুন একটি সহজ সরল ওয়ার্ডপ্রেস লুপ দেখে নেই –

এখানে একটা মজার বিষয় হলো, লুপের ভিতর the_post() কে কল না করলে লুপটি কিন্তু ইনফিনিটি লুপে পরিণত হবে অর্থাৎ এটি ইনফিনিটি ওয়ার শুরু করে দিবে যতক্ষণ না আপনি ক্যাপ্টেন মারভেল রূপে আবির্ভূত হয়ে সেটাকে থামাচ্ছেন! কিভাবে হবে, কেনো হবে এসবের পসরা নিয়ে অন্যকোন দিন বসবো ইনশাআল্লাহ। লুপের ভিতর the_title(), the_content(), the_tags(), the_author() নামে যেসব ফাংশন দেখছি তা ওয়ার্ডপ্রেসে টেমপ্লেট ট্যাগ নামে পরিচিত। এইসব টেমপ্লেট ট্যাগের অনেকগুলি লুপ গ্লোবাল ভেরিয়েবলের উপর নির্ভরশীল। এছাড়াও গ্লোবাল ভেরিয়েবল গুলি ব্যবহার করে আমরা পোস্টের ডেট-টাইম, অথর সহ অনেক ইনফো সহজেই পেতে পারি।

লুপ গ্লোবাল ভেরিয়েবলস

  1. $post – এটি পুরো ওয়ার্ডপ্রেস সিস্টেমে এবং ওয়ার্ডপ্রেস লুপের অন্যতম গুরুত্বপূর্ণ একটি গ্লোবাল ভেরিয়েবল। কারণ অনেক টেমপ্লেট ট্যাগ এই ভেরিয়েবলের উপর নির্ভরশীল। এটিতে কারেন্ট পোস্টের অবজেক্ট থাকে যা WP_Post ক্লাসের ইন্সট্যান্স বা অবজেক্ট। ওয়ার্ডপ্রেসের প্রাইমারী লুপের পাশাপাশি আরেকটি লুপ চালানোর সময় $post ভেরিয়েবলটি বিশাল ভূমিকা পালন করে থাকে, যা এর অন্যতম একটি ব্যবহার। নিচের কোড দেখলে তা স্পষ্ট বোঝা যাবে –
  2. $authordata – ওয়ার্ডপ্রেস লুপে এটিও একটি গুরুত্বপূর্ণ ভেরিয়েবল। এটিতে কারেন্ট পোস্ট অথরের অবজেক্ট বা কারেন্ট পোস্ট অথরের WP_User ক্লাসের ইন্সট্যান্স থাকে এবং অথর সম্পর্কিত টেমপ্লেট ট্যাগগুলি এই ভেরিয়েবলের উপর নির্ভরশীল।
  3. $currentday – কারেন্ট পোস্ট পাবলিশের তারিখ স্ট্রিং হিসেবে এই ভেরিয়েবলে থাকে। যেমন- 28.04.18 এটি ২০১৮ সালের ২৮ এপ্রিল তারিখ নির্দেশ করছে।
  4. $currentmonth – কারেন্ট পোস্ট পাবলিশের মাস স্ট্রিং হিসেবে থাকে তবে মাসের নাম থাকেনা মাসের নম্বর থাকে। যেমন – 04 এটি নির্দেশ করে এপ্রিল মাস যেহেতু এপ্রিল চতুর্থ মাস।
  5. $page – পোস্টে যদি পেজিনেশন থাকে তবে এটি নির্দেশ করে পেজটি পেজিনেশনের কত নম্বর পেজ। নম্বরটি অবশ্যই ইন্টিজার হিসেবে থাকে স্ট্রিং হিসেবে নয়।
  6. $pages<!--nextpage--> দিয়ে কিন্তু একটা পোস্টের কনটেন্টকে অনেকগুলি পেজে ভাগ করা যায়! আর সেসব আলাদা আলাদা পেজের কনটেন্টগুলি থাকে এই ভেরিয়েবলে এ্যারে আকারে।
  7. $multipage – এটি একটি বুলিয়ান ভেরিয়েবল এবং এটি $pages ভেরিয়েবলের উপর নির্ভরশীল। একাধিক পেজ থাকলে এটি true হবে নয়তো false
  8. $numpages – এটিও $multipage এর মত $pages এর উপর নির্ভরশীল। কিন্তু এই ভেরিয়েবলের মাধ্যমে জানা যায় কতটি পেজ আছে, সুতরাং এটি অবশ্যই ইন্টিজার ভেরিয়েবল।

ইনশাআল্লাহ, পরবর্তি পর্বে আমরা এডমিন গ্লোবাল ভেরিয়েবলস নিয়ে জানব। ধন্যবাদ 🙂

ওয়ার্ডপ্রেস গ্লোবাল গোলমাল (ভেরিয়েবল) – পর্ব ১

ওয়ার্ডপ্রেসের কোর আর্কিটেকচার নিয়ে অনেকের ভীষণ আপত্তি আছে আবার অনেকের আছে মোটামুটি চলে টাইপের আপত্তি। আবার অনেকের আছে অন্ধ ভালোবাসা টাইপের আপত্তি, যাকে বলে আচ্ছা ঠিক আছে কিন্তু ভালো লাগেতো! 😛 আর এই আপত্তির অন্যতম একটি কারণ হলো ওয়ার্ডপ্রেসের গ্লোবাল ভেরিয়েবল। কোডেক্স অনুসারে ওয়ার্ডপ্রেসে প্রায় ৫০ টির মত গ্লোবাল ভেরিয়েবল আছে! সত্যিই তাই, সংখ্যাটা চমকে দেয়ার মত।

কোডেক্স অনুসারে ওয়ার্ডপ্রেসে ৬ ক্যাটেগরির গ্লোবাল ভেরিয়েবল আছে। চলুন ক্যাটেগরি গুলি দেখে নেয়া যাক।

  1. ওয়েব সার্ভার ডিটেকশন ভেরিয়েবলস
  2. ব্রাউজার ডিটেকশন ভেরিয়েবলস
  3. লুুপ গ্লোবাল ভেরিয়েবলস
  4. এডমিন ভেরিয়েবলস
  5. বিচ্ছিন্ন ভেরিয়েবলস
  6. ভার্সন ভেরিয়েবলস

আজকে আমরা শুধুমাত্র ব্রাউজার ডিটেকশন এবং ওয়েব সার্ভার সংশ্লিষ্ট গ্লোবাল ভেরিয়েবল গুলি নিয়ে জানার চেষ্টা করবো।

ব্রাউজার ডিটেকশন ভেরিয়েবলস

ব্রাউজার ডিটেকশন ভেরিয়েবল গুলি দিয়ে জানা যায় ইউজার কোন ব্রাউজার ব্যবহার করে আমাদের ওয়ার্ডপ্রেস সাইট ভিজিট করছে। এই ভেরিয়েবল গুলির বিশেষত্ব হলো এগুলি বুলিয়ান ডাটা রাখে। বুলিয়ান ডাটা কি বা কেমন এটা বোঝার জন্য একটা প্রশ্নোত্তর পর্ব থেকে ঘুরে আসি চলুন। ধরুন, আপনি আমাকে জিজ্ঞেস করলেন “আপনার ম্যাকবুক আছে” আমি উত্তর দিলাম “নাই”। আবার আপনি জিজ্ঞস করলেন আপনি কি “উকমার্স থিম ডেভেলপ করতে পারেন” আমি উত্তর দিলাম “হ্যাঁ”। বুলিয়ান ডাটা হচ্ছে এরকমই, যার মাধ্যমে আমরা হ্যাঁ-না, আছে-নাই টাইপের উত্তর পেতে পারি।

  1. $is_iphone – এই ভেরিয়েবলের মাধ্যমে আমরা জানতে পারবো আমাদের সাইটটি আইফোনের সাফারি ব্রাউজার ব্যবহার করে ব্রাউজ করা হচ্ছে কিনা বা ব্রাউজের জন্য রিকোয়েস্ট করা হচ্ছে কিনা।
  2. $is_chrome – এই ভেরিয়েবল ব্যবহার করে জানতে পারবো গুগল ক্রোম কিনা।
  3. $is_safari – এটির মাধ্যমে জানা যাবে এটি সাফারি কিনা। এটি আর $is_iphone এর মধ্যে মিল হলো দুটোই সাফারি আর অমিল হলো একটি আইফোন আরেকটি ডেস্কটপ।
  4. $is_NS4 – নেটস্কেপ ব্রাউজার বেঁচে আছে কিনা আমার জানা নেই। গুগল করতে ভুলে গেছি। আপনি একটু খবর নিয়ে এই অলসকে জানিয়েন পিলিজ!
  5. $is_opera – এটির মাধ্যমে জানা যাবে এটি অপেরা ব্রাউজার কিনা। আপনি জানেন কী? অপেরা কিন্তু ব্লিংক লেআউট ইঞ্জিন ব্যবহার করে যেটি আবার ক্রোমের লে আউট ইঞ্জিন। ব্লিংক আবার ওয়েব কোরের একটি ফর্ক আর ওয়েব কোর হলো ওয়েব কিটের অংশ। আবার ওয়েব কিট হলো সাফারির ব্রাউজার ইঞ্জিন 😀 দারুন ব্যাপার না!
  6. $is_macIE – এটি দিয়ে জানা যাবে ম্যাকের ইন্টারনেট এক্সপ্লোরার কিনা! কেউ কি আদতে ম্যাকে ইন্টারনেট এক্সপ্লোরার ব্যবহার করে? আল্লাহ মালুম!
  7. $is_winIE – এটির মাধ্যমে জানা যাবে এটি সেই বিখ্যাত ইন্টারনেট এক্সপ্লোরার কিনা। যেটি ব্যবহার করে আমরা ক্রোম অথবা ফায়ারফক্স ডাউনল‌োড করে থাকি! 😛
  8. $is_gecko – নাম নিতে নিতে চলে আসছে, অনেক দিন বাঁচবে! কিন্তু এর নাম ফায়ারফক্স না হয়ে গেকো হলো ক্যানো? গেকো (Gecko) হলো মূলত ওয়েব ব্রাউজার ইঞ্জিনের নাম যা মজিলার ডেভেলপ করা আর ফায়ারফক্স এই ইঞ্জিন ব্যবহার করেই বানানো।
  9. $is_lynx – এই ব্রাউজার নিয়ে আমার কোন আইডিয়া নেই। গুগল করে জানলাম এটি একটি টেক্সট বেজড ব্রাউজার। আপনি চাইলে গুগল করে আরও কিছু জেনে নিতে পারেন।
  10. $is_IE – এটি $is_macIE অথবা $is_winIE হলেই হ্যাঁ হ্যাঁ বলে। অর্থাৎ ম্যাক হোক আর উইন্ডোজ ইন্টারনেট এক্সপ্লোরার হলেই হ্যাঁ।
  11. $is_edge – আর এটি হলেন জনাব এজ। এসেছেন ইন্টারনেট এক্সপ্লোারের ঐতিহ্য উদ্ধার করতে। এটির মাধ্যমে সেটিকেই জানা যাবে।

সার্ভার ডিটেকশন ভেরিয়েবলস

সার্ভার ডিটেকশন ভেরিয়েবল গুলি দিয়ে আমরা জানতে পারি আমাদের ওয়ার্ডপ্রেস কোন ওয়েব সার্ভার সফটওয়্যার দিয়ে চলতে। এই ভেরিয়েবল গুলিও ব্রাউজার ডিটেকশন ভেরিয়েবলের মত বুলিয়ান।

  1. $is_apache – এটি দিয়ে সর্বেসর্বা এ্যাপাচি ওয়েব সার্ভার কিনা জানা যাবে।
  2. $is_nginx – এটি দিয়ে Nginx সার্ভার কিনা জানা যাবে।
  3. $is_IIS এবং $is_iis7 – এই দুইটা দিয়ে মাইক্রোসফটের Internet Information Services বা আইআইএস কিনা জানা যাবে।

ইনশাআল্লাহ, পরবর্তি পর্বে আমরা জানব লুপ গ্লোবাল ভেরিয়েবল বা ওয়ার্ডপ্রেসের লুপের সাথে সংশ্লিষ্ট গ্লোবাল ভেরিয়েবল গুলি নিয়ে।

 

— ধন্যবাদ 🙂