পোস্ট বা পাতার কন্টেন্ট দেখানো প্রতিটি টেমপ্লেট — index.php, page.php, single.php, আরও — একই প্যাটার্নের মধ্য দিয়ে করে, যাকে বলা হয় the Loop। এটি কোনো বিশেষ WordPress ফিচার নয় যতটা না একটি নির্দিষ্ট, সবসময় একইরকম while লুপের জন্য একটি নামকরণ প্রথা।
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>have_posts() চেক করে দেখানোর জন্য আর কোনো পোস্ট বাকি আছে কিনা। the_post() তাতে এগিয়ে যায় আর সব "বর্তমান পোস্ট" ডেটা সেট করে যা লুপের ভেতরের ট্যাগগুলো পড়ে। একটি সিঙ্গেল পাতায় এটি শুধু একবার চলে; একটি আর্কাইভ বা হোমপেজে, তালিকার প্রতিটি পোস্টের জন্য একবার করে চলে।
এগুলো শুধু Loop-এর ভেতরে কাজ করে — এর বাইরে কল করলে এগুলোর পড়ার মতো কোনো "বর্তমান পোস্ট" থাকে না:
| ট্যাগ | আউটপুট করে |
|---|---|
the_title() | পোস্ট/পেজের title |
the_content() | সম্পূর্ণ পোস্ট/পেজ কন্টেন্ট |
the_excerpt() | একটি ছোট স্বয়ংক্রিয়ভাবে-তৈরি (বা হাতে সেট করা) সারসংক্ষেপ |
the_permalink() | পোস্ট/পেজের URL |
the_ID() | পোস্ট/পেজের সংখ্যাসূচক ID — অন্য ফাংশনে পাস করার জন্য কাজের |
get_the_date() | প্রকাশের তারিখ, ফরম্যাট করা (আউটপুট নয়, রিটার্ন করে, তাই এটি echo-তে মোড়ানো থাকে) |
কন্ডিশনাল ট্যাগ উত্তর দেয় "এটা কী ধরনের পাতা?" আর টেমপ্লেটের যেকোনো জায়গায় কাজ করে, শুধু Loop-এর ভেতরে নয় — এগুলোই একটি একক header.php-কে পুরো সাইট জুড়ে ভিন্নভাবে আচরণ করতে সক্ষম করে:
| ট্যাগ | যখন true হয় |
|---|---|
is_front_page() | সাইটের কনফিগার করা হোমপেজ দেখানো হচ্ছে |
is_home() | মূল ব্লগ লিস্টিং দেখানো হচ্ছে (is_front_page()-এর মতোই, যদি না একটি স্ট্যাটিক হোমপেজ সেট করা থাকে) |
is_single() | একটি একক ব্লগ পোস্ট দেখানো হচ্ছে |
is_page() | একটি স্ট্যান্ডঅ্যালোন পেজ দেখানো হচ্ছে |
is_archive() | যেকোনো আর্কাইভ লিস্টিং — ক্যাটাগরি, ট্যাগ, তারিখ, বা কাস্টম ট্যাক্সোনমি — দেখানো হচ্ছে |
is_home() বনাম is_front_page()
is_home() আর is_front_page() মানুষকে প্রায়ই বিভ্রান্ত করে। এগুলো তখনই একরকম যখন একটি সাইটের হোমপেজ হলো ব্লগ লিস্টিং। যে মুহূর্তে একটি সাইট তার হোমপেজ হিসেবে একটি স্ট্যাটিক পেজ ব্যবহার করে (Settings → Reading), দুটো আলাদা হয়ে যায় — is_front_page() সেই সেটিং অনুসরণ করে, is_home() সবসময় মানে "ব্লগ লিস্টিং," এটি যেখানেই থাকুক না কেন।
পোস্ট আর পেজ আসলেই রেন্ডার হওয়ার পর, পরের পাঠ একটু পেছনে গিয়ে দেখে WordPress প্রথমে কীভাবে ঠিক করলো কোন টেমপ্লেট ফাইল ব্যবহার করবে — template hierarchy।