তাহাদের মাঝে তাঁরাদের খুঁজি!

তাঁরা হাত বাড়িয়ে দেয় আর বন্ধুর পথ গুলি করে দেয় মসৃণ

আমি সবসময় চেষ্টা করি আমার থেকে ভালো অবস্থানে থাকা মানুষদের সান্যিধ্যে থাকতে, আসতে। ভালো অবস্থানটি হতে পারে সামাজিকভাবে, হতে পারে অর্থনৈতিকভাবে, হতে পারে বুদ্ধিবৃত্তিকভাবে, হতে পারে চারিত্রিকভাবে। আমি যাদের সান্যিধ্যে আসতে চাই তারাও চেষ্টা করেন তাদের থেকে ভালো অবস্থানে থাকা মানুষদের সান্যিধ্য পাবার।

আর এ কারণে তারা সর্বদা চেষ্টা করেন তাদের সময় এবং এফোর্ট যথাযথভাবে ব্যবহারের। নিচের অবস্থানে থাকায় “যথাযথ ব্যবহারের” ফিল্টার পেরিয়ে বেশিরভাগ সময়ই উপরে উঠা আর সম্ভবপর হয়ে উঠেনা। উপর হতে হাত বাড়িয়ে উদারতা দেখানোর অভিপ্রায় সবাই রাখেন না। যা খুবই স্বাভাবিক এবং হয়তো আমিও তাদের অবস্থানে থাকলে তাই করতাম। নিজেকে না গুছিয়ে অন্যকে গুছিয়ে দেয়ার মত উদারতা দেখানোর দুঃসাহস সবাই করতে পারে না।

কিন্তু কেউ না কেউ থাকেই, কেউ না কেউ আসেই সে দুঃসাহস দেখাতে। তাঁরা নিজেদের পাশাপাশি অন্যকেও এগিয়ে নিয়ে যান সমান তালে। আর কেউ কেউ আসেন এঞ্জেল হয়ে, তাঁরা হাত বাড়িয়ে দেয় আর বন্ধুর পথ গুলি করে দেয় মসৃণ।

উপরের মানুষগুলির ব্যস্ততা হয়তো আমাকে আহত করবে। তাদের এড়িয়ে চলা নিশ্চিতভাবে আমাকে জানিয়ে দিবে আমার অবস্থান। এমনটাই তো হবার কথা। নিজের বর্তমান আর অবস্থান বুঝতে না পারলে ভবিষ্যৎ সাজাবো কি করে আর অবস্থানের পরিবর্তনই বা আসবে কি করে!

Photo by Anna Sullivan on Unsplash

— ধন্যবাদ 🙂

সিলেক্টেবল কাস্টম ইমেজ সাইজ

আজকে আমরা একটি দারুন জিনিস শিখব। আমিও অবশ্য সদ্যই শিখেছি, গতরাতের (২৫ মে, ২০১৮) পূর্বে জানতাম না 😀 সহজ এই বিষয়টি জেনে এবং শিখে বেশ মজা পেয়েছি তাই ভাবলাম লিখে ফেলি। লেখার শিরোনামটা দেখে হয়তো অনেক কঠিন মনে হচ্ছে কিন্তু বিশ্বাস করুন বিষয়টা মোটেও কঠিন নয় ভীষণ সহজ।

আমরা সবাই কাস্টম ইমেজ সাইজ রেজিস্টার করতে পারি, তাইনা? ওয়ার্ডপ্রেস ডিফল্টভাবে ৩-৪ টি ইমেজ সাইজ রেজিস্টার করে রাখে যেগুলি ওয়ার্ডপ্রেস ইন্টারনালি ব্যবহার করে এবং প্রয়োজনে আমরাও ইমেজ সাইজের নাম দিয়ে আমাদের প্রজেক্টে ব্যবহার করতে পারি। কিন্তু বেশিরভাগ সময়ই ৩-৪ সাইজ দিয়ে কাজ চালানো সম্ভব হয়না, তখন আমরা add_image_size() ফাংশনটি দিয়ে কাস্টম ইমেজ সাইজ রেজিস্টার করি।

আমরা যদি ওয়ার্ডপ্রেসের WYSIWYG (What You See Is What You Get) এডিটর থেকে কনটেন্টে ইমেজ যুক্ত করার জন্য Add Media বাটনে ক্লিক করে ইমেজ যুক্ত করতে যাই তখন ওয়ার্ডপ্রেস আমাদের ইমেজের সাইজ সিলেক্ট করার অপশন দেয়। আর এই অপশন লিস্টে ডিফল্টভাবে শুধুমাত্র ডিফল্ট রেজিস্টার করা ইমেজ সাইজগুলিই থাকে। আজকে আমরা যা শিখবো তা হলো এই অপশন লিস্টে আমাদের কাস্টম রেজিস্টার করা ইমেজের সাইজ এনলিস্ট করা বা যুক্ত করা।

ওয়ার্ডপ্রেস মিডিয়া প্যানেল

ইমেজ সাইজ সিলেক্টেবল করা

যেহুতু আমাদের ডিফল্ট সাইজগুলির সাথে আমাদের কাস্টম রেজিস্টার্ড সাইজ যুক্ত করতে হবে। সো ধরেই নেয়া যায় যে এটা একটি ফিল্টার হুক দিয়েই করতে হবে, আর ফিল্টার হুকটি হচ্ছে image_size_names_choose। এই হুকটি শুধুমাত্র ইমেজের সাইজগুলিই প্যারামেটার হিসেবে পাস করে এ্যাসোশিয়েটিভ এ্যারে হিসেবে। কী হিসেবে থাকে ইমেজের সাইজের নাম এবং ভ্যালুতে থাকে একটি হিউম্যান রিডেবল নাম।

ওয়ার্ডপ্রেসের ডিফল্ট টুয়েন্টিসেভনটিন থিমটিতে 'twentyseventeen-thumbnail-avatar' নামে একটি কাস্টম ইমেজ সাইজ আছে আমরা এটিকে সিলেক্টেবল করব। নিচের কোডটি কপি করে টুয়েন্টিসেভনটিন থিমের functions.php তে পেস্ট করুন।

এখন পোস্ট কিংবা পেজের WYSIWYG এডিটর থেকে ইমেজ যুক্ত করার সময় সাইজ ড্রপডাউনটি চেক করুন। দেখুন আমাদের কাস্টম ইমেজ সাইজটি লিস্টে দেখাচ্ছে।

অবশ্যই নিশ্চিত করুন আপনার টুয়েন্টিসেভনটিন থিমটি এক্টিভ অবস্থায় আছে কিনা।

— ধন্যবাদ 🙂

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

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

দ্যা লুপ (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 এর উপর নির্ভরশীল। কিন্তু এই ভেরিয়েবলের মাধ্যমে জানা যায় কতটি পেজ আছে, সুতরাং এটি অবশ্যই ইন্টিজার ভেরিয়েবল।

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