আসসালামু আলাইকুম।
WordPress দিয়ে শুধু Website বানানো আর WordPress Development শেখা—দুটো কিন্তু এক জিনিস নয়।
WordPress Development শিখতে হলে শুধু Theme install, Plugin install বা Elementor ব্যবহার জানলেই হবে না। আপনাকে WordPress-এর ভেতরের basic structure, template system, loop এবং গুরুত্বপূর্ণ PHP functionগুলো বুঝতে হবে।
এই বিষয়গুলো ভালোভাবে বুঝে গেলে নিজের হাতে WordPress Theme তৈরি করা, existing theme modify করা এবং পরবর্তীতে Plugin Development শেখাও অনেক সহজ হয়ে যাবে।
চলুন তাহলে WordPress Development-এর জন্য সবচেয়ে গুরুত্বপূর্ণ বিষয়গুলো জেনে নেওয়া যাক।
১. WordPress Theme Structure
প্রথমেই WordPress Theme-এর structure বুঝতে হবে।
একটি সাধারণ Theme-এ আপনি দেখতে পাবেন—
theme-folder/
│
├── style.css
├── index.php
├── functions.php
├── header.php
├── footer.php
├── sidebar.php
├── single.php
├── page.php
├── archive.php
├── search.php
└── 404.php
প্রতিটি ফাইলের আলাদা কাজ রয়েছে। WordPress Development শেখার ক্ষেত্রে এগুলো সম্পর্কে পরিষ্কার ধারণা থাকা খুবই গুরুত্বপূর্ণ।
২. get_header()
Theme-এর Header ফাইল load করার জন্য ব্যবহার করা হয়।
<?php get_header(); ?>
এর মাধ্যমে WordPress সাধারণত header.php ফাইলটি load করে।
একই Header বারবার লিখতে হয় না—এক জায়গায় লিখে প্রয়োজন অনুযায়ী ব্যবহার করা যায়।
৩. get_footer()
Footer load করার জন্য ব্যবহার করা হয়।
<?php get_footer(); ?>
এটি সাধারণত footer.php ফাইল load করে।
৪. get_sidebar()
Theme-এর Sidebar load করার জন্য ব্যবহার করা হয়।
<?php get_sidebar(); ?>
আপনার Theme-এ যদি sidebar.php থাকে, তাহলে এই function দিয়ে সেটি include করা যায়।
৫. WordPress Loop
WordPress Development-এর সবচেয়ে গুরুত্বপূর্ণ বিষয়গুলোর একটি হলো The Loop।
WordPress থেকে Post বের করে Website-এ দেখানোর জন্য Loop ব্যবহার করা হয়।
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile; ?>
<?php endif; ?>
এই Loop ভালোভাবে বুঝতে পারলে WordPress Theme Development-এর অনেক গুরুত্বপূর্ণ বিষয় আপনার কাছে পরিষ্কার হয়ে যাবে।
৬. have_posts()
WordPress-এর কাছে দেখানোর মতো Post আছে কি না, সেটা পরীক্ষা করতে ব্যবহার করা হয়।
<?php if ( have_posts() ) : ?>
Loop-এর সঙ্গে এটি সবচেয়ে বেশি ব্যবহার করা হয়।
৭. the_post()
Loop-এর প্রতিটি Post-এর data প্রস্তুত করার জন্য ব্যবহার করা হয়।
<?php while ( have_posts() ) : the_post(); ?>
এরপর the_title(), the_content() ইত্যাদি function ব্যবহার করে সেই Post-এর তথ্য দেখানো যায়।
৮. the_title()
Post বা Page-এর Title দেখানোর জন্য ব্যবহার করা হয়।
<h2><?php the_title(); ?></h2>
WordPress-এর Dynamic Content নিয়ে কাজ করার সময় এটি খুবই গুরুত্বপূর্ণ একটি function।
৯. the_content()
Post-এর সম্পূর্ণ Content দেখানোর জন্য ব্যবহার করা হয়।
<?php the_content(); ?>
Blog Post-এর মূল লেখাগুলো Website-এ দেখাতে এটি ব্যবহার করা হয়।
১০. the_excerpt()
Post-এর সংক্ষিপ্ত অংশ দেখানোর জন্য ব্যবহার করা হয়।
<?php the_excerpt(); ?>
Homepage বা Blog Listing Page-এ পুরো Article না দেখিয়ে সংক্ষিপ্ত Description দেখাতে এটি বেশ কাজে লাগে।
১১. the_permalink()
কোনো Post-এর URL বের করার জন্য ব্যবহার করা হয়।
<a href="<?php the_permalink(); ?>">
Read More
</a>
Blog Homepage-এ প্রতিটি Post-এর সঙ্গে Read More link তৈরি করতে এটি খুবই গুরুত্বপূর্ণ।
১২. the_post_thumbnail()
Post-এর Featured Image দেখানোর জন্য ব্যবহার করা হয়।
<?php the_post_thumbnail(); ?>
আরও নির্দিষ্ট Image Size ব্যবহার করা যায়:
<?php the_post_thumbnail('medium'); ?>
১৩. the_author()
Post-এর Author-এর নাম দেখানোর জন্য ব্যবহার করা হয়।
<?php the_author(); ?>
Blog-এর Post Meta Information তৈরি করার সময় এটি কাজে লাগে।
১৪. the_date() এবং get_the_date()
Post-এর তারিখ দেখানোর জন্য ব্যবহার করা হয়।
<?php the_date(); ?>
অথবা:
<?php echo get_the_date(); ?>
দুটোর ব্যবহারিক পার্থক্যও পরবর্তীতে শেখা গুরুত্বপূর্ণ।
১৫. get_template_directory_uri()
Theme-এর folder-এর URL পাওয়ার জন্য এটি খুব গুরুত্বপূর্ণ একটি function।
যেমন Theme-এর CSS file load করতে—
<link rel="stylesheet"
href="<?php echo get_template_directory_uri(); ?>/style.css">
তবে WordPress Development-এ CSS ও JavaScript load করার জন্য পরবর্তীতে wp_enqueue_style() এবং wp_enqueue_script() ব্যবহার করাই সঠিক পদ্ধতি।
১৬. wp_enqueue_style()
Theme-এর CSS সঠিকভাবে load করার জন্য ব্যবহার করা হয়।
function my_theme_assets() {
wp_enqueue_style(
'main-style',
get_stylesheet_uri()
);
}
add_action('wp_enqueue_scripts', 'my_theme_assets');
এটি WordPress Theme Development-এর জন্য অবশ্যই শেখা উচিত।
১৭. wp_enqueue_script()
JavaScript file load করার জন্য ব্যবহার করা হয়।
wp_enqueue_script(
'main-js',
get_template_directory_uri() . '/js/main.js',
array(),
null,
true
);
Theme-এর JavaScript ব্যবহারের ক্ষেত্রে এটি গুরুত্বপূর্ণ।
১৮. add_action()
WordPress-এর Hook System বোঝার জন্য add_action() খুবই গুরুত্বপূর্ণ।
add_action('wp_enqueue_scripts', 'my_theme_assets');
সহজভাবে বললে, WordPress-এর নির্দিষ্ট একটি জায়গায় বা নির্দিষ্ট সময়ে নিজের function চালানোর জন্য Action Hook ব্যবহার করা হয়।
১৯. add_filter()
WordPress-এর কোনো existing data বা output পরিবর্তন করার জন্য Filter ব্যবহার করা হয়।
add_filter('the_title', 'my_custom_title');
Theme ও Plugin Development-এ Hook System অত্যন্ত গুরুত্বপূর্ণ। তাই add_action() এবং add_filter() ভালোভাবে শেখা দরকার।
২০. register_nav_menus()
Theme-এর Navigation Menu তৈরি করার জন্য ব্যবহার করা হয়।
register_nav_menus(array(
'primary' => 'Primary Menu'
));
এর মাধ্যমে WordPress Dashboard থেকে Menu তৈরি করে Theme-এর নির্দিষ্ট জায়গায় ব্যবহার করা যায়।
২১. wp_nav_menu()
Dashboard থেকে তৈরি করা Menu Website-এ দেখানোর জন্য ব্যবহার করা হয়।
<?php
wp_nav_menu(array(
'theme_location' => 'primary'
));
?>
Dynamic Navigation তৈরি করতে এটি খুব গুরুত্বপূর্ণ।
২২. register_sidebar()
Theme-এর Sidebar বা Widget Area তৈরি করতে ব্যবহার করা হয়।
register_sidebar(array(
'name' => 'Main Sidebar'
));
এরপর WordPress Dashboard থেকে Widget যোগ করা যায়।
২৩. dynamic_sidebar()
Register করা Sidebar Website-এ দেখানোর জন্য ব্যবহার করা হয়।
<?php dynamic_sidebar('Main Sidebar'); ?>
এটি সাধারণত sidebar.php-তে ব্যবহার করা হয়।
২৪. add_theme_support()
Theme-এ WordPress-এর বিভিন্ন Feature enable করতে ব্যবহার করা হয়।
যেমন Featured Image চালু করতে—
add_theme_support('post-thumbnails');
আরও বিভিন্ন Theme Support রয়েছে, যেগুলো প্রয়োজন অনুযায়ী ব্যবহার করা হয়।
২৫. register_post_type()
WordPress-এর সবচেয়ে শক্তিশালী বিষয়গুলোর একটি হলো Custom Post Type।
যেমন আপনি যদি Blog Post-এর পাশাপাশি—
- Portfolio
- Product
- Team Member
- Movie
- Course
ইত্যাদির জন্য আলাদা Content Type তৈরি করতে চান, তখন register_post_type() ব্যবহার করা যায়।
register_post_type('portfolio');
এটি Theme Development-এর পাশাপাশি Plugin Development-এর ক্ষেত্রেও খুব গুরুত্বপূর্ণ।
২৬. register_taxonomy()
Custom Category বা Taxonomy তৈরি করার জন্য ব্যবহার করা হয়।
যেমন Portfolio-এর জন্য—
Web Design
WordPress
React
PHP
এরকম আলাদা Classification তৈরি করা যায়।
২৭. get_posts() এবং WP_Query
WordPress-এর Post নিয়ে কাজ করতে গেলে একসময় আপনাকে Custom Query করতে হবে।
সেখানে WP_Query অত্যন্ত গুরুত্বপূর্ণ।
$query = new WP_Query(array(
'post_type' => 'post',
'posts_per_page' => 5
));
এটি দিয়ে নির্দিষ্ট Post Type, Category, সংখ্যা ইত্যাদি অনুযায়ী Post বের করা যায়।
২৮. esc_html() এবং Security
WordPress Development-এ শুধু Function জানা যথেষ্ট নয়, Security-ও জানতে হবে।
যেমন:
echo esc_html($title);
HTML output নিরাপদ রাখার জন্য escaping ব্যবহার করা হয়।
এছাড়া esc_url(), esc_attr() ইত্যাদিও ধীরে ধীরে শেখা উচিত।
২৯. wp_head() এবং wp_footer()
Theme-এর header.php-তে সাধারণত থাকে—
<?php wp_head(); ?>
আর footer.php-তে থাকে—
<?php wp_footer(); ?>
এই দুটো WordPress Theme-এর জন্য অত্যন্ত গুরুত্বপূর্ণ। অনেক Plugin এবং WordPress-এর বিভিন্ন প্রয়োজনীয় resource এই Hook-এর মাধ্যমে কাজ করে।
WordPress Development শেখার সময় শুরুতেই শত শত Function মুখস্থ করার দরকার নেই। বরং আগে বুঝতে হবে কোন Function কেন ব্যবহার করা হয় এবং WordPress কীভাবে কাজ করে।
বিশেষ করে নিচের বিষয়গুলো ভালোভাবে আয়ত্ত করুন:
Theme Structure
The Loop
get_header()
get_footer()
get_sidebar()
have_posts()
the_post()
the_title()
the_content()
the_excerpt()
the_permalink()
the_post_thumbnail()
add_action()
add_filter()
wp_enqueue_style()
wp_enqueue_script()
register_nav_menus()
wp_nav_menu()
register_sidebar()
dynamic_sidebar()
add_theme_support()
WP_Query
register_post_type()
register_taxonomy()
wp_head()
wp_footer()
esc_html()
esc_url()
esc_attr()
এই Function ও Conceptগুলো ভালোভাবে বুঝে গেলে WordPress Theme Development-এর পরবর্তী ধাপগুলো অনেক সহজ হয়ে যাবে।
আমাদের এই Course-এর পরবর্তী ধাপে আমরা এগুলো শুধু পড়ব না—একটি বাস্তব WordPress Theme তৈরি করতে করতে প্রতিটি Function কোথায়, কেন এবং কীভাবে ব্যবহার করতে হয় সেটা হাতে-কলমে দেখব।

