একটি থিম যে প্রায় প্রতিটি পাতা রেন্ডার করে তারা একই শুরুর আর শেষের মার্কআপ শেয়ার করে — <head>, উপরের সাইট হেডার আর নেভিগেশন, নিচের ফুটার। প্রতিটি টেমপ্লেট ফাইলে এটি বারবার লেখার বদলে, এটি ঠিক দুটো জায়গায় থাকে: header.php আর footer.php।
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<header id="site-header">
<a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a>
</header>এখানে বাকি মার্কআপের চেয়ে তিনটি ফাংশন বেশি গুরুত্বপূর্ণ:
| ফাংশন | এটি কী করে |
|---|---|
wp_head() | একটি হুক ফায়ার করে যাতে WordPress কোর, প্রতিটি প্লাগইন, আর SEO টুল সবাই সংযুক্ত হয় — স্টাইলশিট, মেটা ট্যাগ, ট্র্যাকিং স্ক্রিপ্ট, আরও অনেক কিছু এখানেই inject হয় |
body_class() | বর্তমান পাতা বর্ণনা করা একগুচ্ছ CSS ক্লাস আউটপুট করে (home, single-post, page-id-12, আরও) — অতিরিক্ত PHP লজিক ছাড়াই পাতা-নির্দিষ্ট স্টাইলিংয়ের জন্য কাজের |
language_attributes() | সাইটের কনফিগার করা ভাষার জন্য সঠিক lang আর টেক্সট-ডিরেকশন অ্যাট্রিবিউট আউটপুট করে |
<footer id="site-footer">
<p>© <?php echo esc_html( date( 'Y' ) ); ?> <?php bloginfo( 'name' ); ?></p>
</footer>
<?php wp_footer(); ?>
</body>
</html>wp_footer() হলো wp_head()-এর প্রতিরূপ — যেসব প্লাগইনের ক্লোজিং </body> ট্যাগের কাছে JavaScript আউটপুট করা দরকার (পারফরম্যান্সের কারণে বেশিরভাগই) সেগুলো হেডের বদলে এখানে hook করে।
এই দুটো হুক ঐচ্ছিক নয়
wp_head() বা wp_footer() কখনো বাদ দেবেন না। প্লাগইনগুলো সত্যিই প্রতিটি পাতায় দুটোই ফায়ার হওয়ার উপর নির্ভর করে — একটি বাদ দিলে শুধু দেখতে ভুল লাগে তা না, এটি চুপচাপ প্লাগইনের কার্যকারিতা ভেঙে দেয়, কারণ নির্দেশক কোনো স্পষ্ট এরর মেসেজ ছাড়াই।
বাকি প্রতিটি টেমপ্লেট ফাইল শুরু হয় get_header() দিয়ে আর শেষ হয় get_footer() দিয়ে — WordPress ফাংশন যা শুধু মিলে যাওয়া ফাইলটি include করে:
<?php get_header(); ?>
<p>Page-specific content goes here.</p>
<?php get_footer(); ?>শেয়ার করা শেল তৈরি হয়ে যাওয়ার পর, পরের পাঠে দেখা হবে get_header() আর get_footer()-এর মাঝে আসলে কী থাকে — the Loop, যে কোডটি একটি পোস্ট বা পাতার আসল কন্টেন্ট আউটপুট করে।