ওয়ার্ড প্রেসের থীম কিভাবে কাজ করে-পর্ব-১

[যদি আপনার নরমাল এইটিএমএল এবং একদম বেসিক পিএইচপি জ্ঞান না থাকে তাহলে এই পোস্টের কিছু বিষয় জটিল মনে হতে পারে ]
অনেকেই ব্যক্তিগত হোস্টিং এ ওয়ার্ড প্রেস ইনস্টল করে ব্লগিং করছেন এবং পছন্দের কোন ফ্রি থীম ইনস্টল করে দিব্যি সুন্দর ব্যক্তিগত ব্লগ বানিয়ে নিচ্ছেন। যদি এমন হয় এই থীম কিভাবে কাজ করে তা যদি জানা থাকে তাহলে আরো মজা না ? ইচ্ছা হলো একটু সম্পাদনা করে থীমটাকে নিজের মতো সাজিয়ে নিলেন। আমার বকবক শুরুর আগে আসুন জেনে নেই এই পোস্টের উদ্দেশ্যগুলোঃ

একঃ ওয়ার্ড প্রেসের থীম কিভাবে কাজ করে
দুইঃ থীম ফোল্ডারের কোন ফাইলের কাজ কি
তিনঃ থীম সম্পাদনা করা
চারঃ ইত্যাদি :ttt:

যেহেতু কাস্টম থীম বিভিন্ন জন বিভিন্ন ভাবে করে (যদিও কমন কিছু মিলতো আছেই) তাই themes ফোল্ডারের default থীম নিয়ে এখানে আলোচনা করবো। এবং তার আগে classic থীমটাতে একটু ঢুঁ মারবো। কারণ ক্লাসিক থীম হলো ওয়ার্ড প্রেসের জন্য সবচেয়ে মিনিমালিস্টিক থীম। ::U::
যে সব ফাইলে আছে তা নিম্নরূপঃ
comments.php (কমেন্টের জন্য টেমপ্লেট ফাইল)
comments-popup.php (পপ আপ কমেন্টের জন্য টেমপ্লেট ফাইল)
footer.php (পরে আসছি)
functions.php (এটা একটা প্লাগিন ফাইলের মতো কাজ করে। চাইলে নিজের তৈরি কাস্টম ফাংশন বা ক্লাস এই ফাইলে লিখে দেওয়া যায়। অন্যান্য প্লাগিন এর মতো এই ফাইলের সব ফাংশন ওয়ার্ড প্রেস প্রতিবার রিফ্রেশ করার সময় এক্সিকিউট হয়)
header.php (পরে আসছি)
index.php (পরে আসছি)
rtl.css (যে সব ভাষা ডান থেকে বামে লেখা হয় সেই ভাষার জন্য ব্লগের স্টাইল বা সিএসএস ফাইল)
screenshot.png (থীমের চেহারা কেমন হবে সেইটার একখান ফটুক)
sidebar.php (উইজেসগুলো লোড করার জন্য ব্যবহত হয়। সাইড বার অনেকটা জুমলার মডুল প্লেসের মতো। আমরা আস্তে আস্তে এটা নিয়ে এডভান্সড পর্যায়ে শিখবো)
style.css (নিচে এটা দিয়ে পরের কিচ্ছা শুরু)
যদি style.css ফাইলটা ওপেন করেন তাহলে প্রথম দিকেই দেখতে পারবেন নিচের মতো লেখা আছে।

Theme Name: WordPress Classic
Theme URI: http://wordpress.org/
Description: The original WordPress theme that graced versions 1.2.x and prior.
Version: 1.5
Author: Dave Shea
Tags: mantle color, variable width, two columns, widgets

এটা হলো এই থীমের নাম, থীমের লেখক ইত্যাদি বিষয়ে তথ্য। অর্থাৎ যদি থীমের নাম পরিবর্তন করতে চান বা নিজে কোন থীম বানাতে চান তাহলে style.css ফাইলে প্রথমে এই ধরনের কমেন্ট আকারে থীমের নাম এবং অন্যান্য তথ্যাবলী দিয়ে দিতে হবে। style.css ফাইলে এর বাদ বাকী যা আছে নিচে কমেন্ট অংশের পরে সব css code , সময় পেলে সিএসএস নিয়ে অন্য পোস্টে আলোচনা করবো।
আপাতত এই টুকু জানতে পারলাম style.css ফাইল হলো কোন থীমের জন্য সবার আগে প্রয়োজন যা থীমের জন্ম নিবন্ধন করে রাখে এবং ওয়ার্ড প্রেস ইঞ্জিন এই ফাইল পড়ে বুঝতে পারে এই থীমের নাম ও অন্যান্য তথ্য।

এখন আসি index.php ফাইল কি জন্য আর কি করে। ব্লগ ওপেন করলে ওয়ার্ড প্রেসের ডিফল্ট সেটিংস অনুসারে এই index.php থীমের পাতাটিই লোড হয়। যদি একটু খেয়াল করেন তাহলে দেখবেন ফাইলের শুরুর দিকে আছে get_header(); এবং শেষের দিকে আছে get_footer(); এই দুইটি পিএইচপি ফাংশনের কাজ হলো যথাক্রমে থীম ফোল্ডার থেকে header.php এবং foooter.php লোড করা এবং যে ফাইল থেকে ফাংশন দুইটি কল করা হচ্ছে সেই ফাইলের সাথে মার্জ করা। তার মানে আসলে কি দাড়ালো
header.php
index.php (এর কিছু অংশ)
footer.php
এই তিনটা ফাইল মিলে একটা ফাইল বা একটা পেজ তৈরি হচ্ছে। শুধু তাই যদি footer.php ফাইলটা ওপেন করেন তাহলে দেখবেন শুরুর দিকে get_sidebar(); এই রকম একটা ফাংশন কল হচ্ছে। আপনি যদি সামান্য চতুর হন তাহলে নিশ্চয় বুঝে ফেলেছেন যে এর কাজ হলো sidebar.php ফাইল এর যা কিছু আছে তা লোড করা। এখন প্রশ্ন হতে পারে কেন এই ভাবে ছিড়ে ছিড়ে একটা বড় পাতা বানাতে হবে। উত্তর হলো একই কাজ বার বার না করে যেগুলো পুনরাবৃত্তি হয় সেইগুলো একটা নির্দিষ্ট ফাইলে রাখা হয় আর নতুন নতুন ধরনের কাজ গুলো আলাদা ফাইলে। আর এই ধরনের কনভেনশনের পেছনে কারণ হলো সহজে ভিন্ন ভিন্ন জোড়া দিয়ে নতুন পাতা তৈরি করা।

কানে কানে একটা গুরুত্বপূর্ণ তথ্য দিয়ে যায় যদি footer.php ফাইলের ট্যাগের আগে wp_footer(); এবং header.php ফাইলের ট্যাগের আগে wp_head(); ফাংশন দুইটি বিশেষ গুরুত্ব বহন করে। যদি কোন থীমে এদের উপস্থিতি না থাকে তাহলে বিভিন্ন প্লাগিনের উপযোগিতা সঠিক ভাবে ভোগ করার জন্য এদের ঐ রকম স্থানে যুক্ত করা আবশ্যক। যেমন wp_footer() ফাংশনের কাজ হলো এই রকম… গুরুত্বপূর্ণ কিছু কাজ বাকি থাকলে এক্ষনি দিয়ে দিন না হলে আমি চলে যাবো…। আবার wp_head() এর কাজ এই রকম… অপারেশন শুরুর আগে কি আর কোন পূর্ব প্রস্তুতি দরকার আছে ? থাকলে আমাকে জানিয়ে দিন…
[যখন আগামীতে প্লাগিন নিয়ে আলোচনা করবো তখন এদের মাজেজা আরো সুন্দর ভাবে বুঝা যাবে]

…একদিনে বেশি হলে সব গুলিয়ে যেতে পারে :ttt: । তাই পরের পর্বে এইখান থেকে শুরু করবো আবার। >:D<

Leave a Reply

Your email address will not be published. Required fields are marked *