Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

bn:থিম ডেভলপমেন্ট

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

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

ওয়ার্ডপ্রেস থিম হলো এমন কিছু ফাইল, যা একটা ওয়ার্ডপ্রেসের সাইটে ডিযাইন এবং কার্যকারিতায় সম্মিলিতভাবে কাজ করে। প্রত্যেকটা থিম আলাদা আলাদাভাবে সাইটের মালিককে তাৎক্ষণিকভাবে ওয়েবসাইটের চেহারা বদলে দিতে বিভিন্ন পছন্দের সুযোগ দিতে পারে।

আপনি আপনার নিজের ব্যবহারের জন্য, ক্লায়েন্টের প্রজেক্টের জন্য কিংবা ওয়ার্ডপ্রেস থিম সংগ্রহশালায় জমা দেবার জন্য ওয়ার্ডপ্রেস থিম তৈরি করার ইচ্ছাপোষণ করতে পারেন। কেন আপনাকে একটা ওয়ার্ডপ্রেস থিম তৈরি করতে হতে পারে?

  • আপনার ওয়ার্ডপ্রেস সাইটের একটা নতুন চেহারা দিতে
  • টেমপ্লেট, টেমপ্লেট ট্যাগ এবং ওয়ার্ডপ্রেস লুপ ব্যবহার করে বিভিন্ন প্রকারের ফলাফল এবং চেহারা তৈরি করার সুবিধা নিতে
  • সাইটের বিভিন্ন নির্দিষ্ট ফিচারের জন্য বিকল্প টেমপ্লেট সুবিধা দিতে, যেমন ক্যাটাগরি পাতা কিংবা সার্চের ফলাফল পাতা
  • সাইটের দুটো লেআউটের মধ্যে দ্রুত পরিবর্তন করে ফেলার জন্য কিংবা থিম বা স্টাইল পরিবর্তনের সুবিধা দিয়ে সাইটের মালিককে দ্রুততার সাথে সাইটের চেহারা বদলে দেবার সুবিধা দিতে

কেন আপনাকে আপনার নিজস্ব ওয়ার্ডপ্রেস থিম তৈরি করতে হতে পারে? এটা একটা বাস্তবসম্মত প্রশ্ন বটে।

  • এটা সিএসএস, এইচটিএমএল এবং পিএইচপি সম্বন্ধে আরো জানার একটা সুযোগ
  • আপনার সিএসএস, এইচটিএমএল এবং পিএইচপি'র অভিজ্ঞতা কাজে লাগানোর একটা সুযোগ
  • এটা ক্রিয়েটিভ
  • এটা মজা (অধিকাংশ সময়ই)
  • আপনি যদি এটা জনসমক্ষে প্রকাশ করেন, আপনার ভালো লাগবে যে, আপনি ওয়ার্ডপ্রেস সম্প্রদায়ে একটা কিছু ফিরতি দিতে পেরেছেন, কিছু শেয়ার করতে পেরেছেন (গর্ব করার অধিকার বটে!)

থিম ডেভলপমেন্টের প্রমিত মান

ওয়ার্ডপ্রেস থিম নিম্নলিখিত মানদণ্ড অনুযায়ী লিখিত হওয়া উচিত:

থিম বিশ্লেষণ

ওয়ার্ডপ্রেস থিমগুলি ওয়ার্ডপ্রেসের themes ডাইরেক্টরিতে(wp-content/themes) অবস্থান করে এবং wp-config.php ফাইল ব্যবহার করে এগুলিকে সরাসরি স্থানান্তরিত করা সম্ভব নয়। থিমের সাব-ডিরেক্টরি সমস্ত থিমের stylesheet, template, function.php, জাভাস্ক্রিপ্ট ফাইল এবং চিত্রগুলি ধারণ করে। উদাহরণস্বরূপ, test নামের একটি থিম wp-content/themes/test ডিরেক্টরিতে রক্ষিত হবে। থিমের নামকরণের জন্য কোন সংখ্যা ব্যবহার করা থেকে বিরত থাকুন, কারণ এই নামকরণ থিমকে উপলভ্য থিম তালিকায় প্রদর্শিত হতে বাধা দেয়।

ওয়ার্ডপ্রেস প্রতিটি নতুন ইনস্টলেশনে একটি করে ডিফল্ট থিম অন্তর্ভুক্ত করে। আপনার নিজের থিম ফাইলগুলি কীভাবে তৈরি করবেন সে সম্পর্কে আরও ভাল ধারণা পেতে মনোযোগ সহকারে ডিফল্ট থিমের ফাইলগুলি পরীক্ষা করুন।

দৃশ্যমান নির্দেশিকা পেতে infographic on WordPress Theme Anatomy লিঙ্কটি খুলে দেখতে পারেন। এখান থেকে আপনি খুব ভাল একটা ধারনা পেয়ে যাবেন।

ওয়ার্ডপ্রেস থিমগুলিতে চিত্র এবং জাভাস্ক্রিপ্ট ফাইলগুলি ছাড়াও তিনটি প্রধান ধরণের ফাইল থাকে।

  1. style.css নামর স্টাইলশিট, যা ওয়েবসাইটের পেজগুলির উপস্থাপনা (ভিজ্যুয়াল ডিজাইন এবং বিন্যাস) নিয়ন্ত্রণ করে।
  2. সাইটের পেজগুলি দ্বারা যেভাবে আপনার ওয়ার্ডপ্রেস ডেটাবেস থেকে তথ্য প্রদর্শিত হয় তা ওয়ার্ডপ্রেস টেম্পলেট ফাইলগুলির সাহায্যে নিয়ন্ত্রণ করা যায়।
  3. ওয়ার্ডপ্রেস থিমের অংশ হিসাবে ঐচ্ছিক functions.php ফাইল।

আসুন এক এক করে ফাইল গুলিকে পর্যালোচনা করা যাক।

Child Themes

সহজতম থিমটি হল চাইল্ড থিম যা কেবল একটিমাত্র সিএসএস ফাইল এবং কোনও ছবি নিয়ে থাকে। এটি সম্ভব কারণ এটি অন্য থিমের একটি অংশ যা তার প্যারেন্ট থিমের মতই কাজ করে। চাইল্ড থিম সম্পর্কে আরও বিস্তারিত জানতে, দেখুন Child Themes.

Theme Stylesheet

দৃশ্যগত উপস্থাপনা বা ভিসুয়াল প্রেসেন্টেশন ছাড়াও style.css আপনার থিম সম্পর্কে বিশদ তথ্য কমেন্ট আকারে সরবরাহ করে। সুতরাং থিম তৈরী শুরু করার আগেই আপনার উচিৎ হবে style.css ফাইলের শিরনামে মন্তব্যের আকারে(/* css comment */) থিমের সংক্ষিপ্ত বিবরণ লিখে রাখার। কোনও দুটি থিমকে তাদের মন্তব্য শিরোনামে একই তথ্য তালিকাভুক্ত রাখার অনুমতি নেই, কারণ এটি থিম নির্বাচন সংলাপে সমস্যা সৃষ্টি করবে। যদি আপনি বিদ্যমান থীমটি অনুলিপি করে নিজের থিম তৈরি করেন তবে নিশ্চিত হয়ে নিন যে আপনি প্রথমে এই তথ্যটি পরিবর্তন করেছেন।

"Twenty Thirteen” থিম যে স্টাইলশিট ব্যবহার করছে তার শিরোনামের প্রথম কয়েকটি লাইনের উদাহরণ নীচে দেওয়া হয়েছে:

/*
Theme Name: Twenty Thirteen
Theme URI: http://wordpress.org/themes/twentythirteen
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, brown, orange, tan, white, yellow, light, one-column, two-columns, right-sidebar, flexible-width, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, translation-ready
Text Domain: twentythirteen

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned with others.
*/

বিশেষ দ্রষ্টব্যঃ "Author” এর জন্য ব্যবহৃত নামটি থিম প্রস্তুতকারকের wordpress.org username হিসাবে ব্যবহার করার প্রস্তাব দেওয়া হয়, যদিও এটি লেখকের আসল নামও হতে পারে। পছন্দটি থিম প্রস্তুতকারকের।

থিমটি বর্ণনা করতে ব্যবহৃত ট্যাগগুলির তালিকাটি নোট করুন। এটি ট্যাগ ফিল্টার ব্যবহার করে ব্যবহারকারীকে আপনার থিমটি সন্ধান করতে সাহায্য করে। থিম পর্যালোচনা হ্যান্ডবুকটিতে আপনি একটি সম্পূর্ণ তালিকা পেতে পারেন।

ওয়ার্ডপ্রেস যাতে আপনার থিমকে সনাক্ত করতে সক্ষম হয় এবং যাতে "Administration Panel” এর Design > Themes এ যাতে অন্যান্য থিমের পাশাপাশি আপনার থিমকেও দেখাতে পারে, সেজন্য style.css এর শিরোনামে ব্যবহৃত মন্তব্যগুলি ব্যবহার করা একান্তই আবশ্যক।

স্টাইলশিট নির্দেশিকা

  • আপনার সিএসএস অনুমোদনের সময় সিএসএস কোডিং মান অনুসরণ করুন।
  • সম্ভব হলে বৈধ সিএসএস ব্যবহার করুন। ব্যতিক্রম হিসাবে, CSS3 বৈশিষ্ট্যগুলির সুবিধা নিতে ভেন্ডর স্পেসিফিক উপসর্গগুলি ব্যবহার করুন।
  • সিএসএস হ্যাক যত কম করতে পারেন তা চেষ্টা করুন। স্পষ্ট ব্যতিক্রম হল ব্রাউজার-নির্দিষ্ট সমর্থন, সাধারণত ইন্টারনেট এক্সপ্লোরার এর সংস্করণ। সম্ভব হলে পৃথক বিভাগে বা পৃথক ফাইলগুলিতে পৃথক সিএসএস হ্যাক করুন।
  • সমস্ত সম্ভাব্য এইচটিএমএল উপাদানগুলি যেমন পোস্ট / পৃষ্ঠার সামগ্রী এবং কমেন্ট সামগ্রী উভয়ই (চাইল্ড থিম বাদে) আপনার থিম দ্বারা স্টাইল করা উচিত।
    • Table, caption, image, List, block quote ইত্যাদি।
  • মুদ্রণ-বান্ধব শৈলী যুক্ত করার সুপারিশ করা হয়।
    • আপনি media="print" সহ একটি মুদ্রণ স্টাইলশিট অন্তর্ভুক্ত করতে পারেন বা আপনার প্রধান স্টাইলশিটে একটি print মিডিয়া ব্লকে যুক্ত করতে পারেন।

ফাংশন ফাইল

কোনও থিম ঐচ্ছিকভাবে একটি ফাংশন ফাইল ব্যবহার করতে পারে, যা থিমের সাব-ডিরেক্টরিতে থাকে এবং নাম দেওয়া হয় functions.php. এই ফাইলটি মূলত একটি প্লাগইনের মতো কাজ করে এবং আপনি যে থিমটি ব্যবহার করছেন তা যদি উপস্থিত থাকে তবে এটি স্বয়ংক্রিয়ভাবে ওয়ার্ডপ্রেস শুরুর সময় লোড হয় (অ্যাডমিন এবং বাহ্যিক পৃষ্ঠাগুলির জন্য)। এই ফাইলটির জন্য প্রস্তাবিত ব্যবহারগুলি হল:

  • থিমের স্টাইলশিট এবং স্ক্রিপ্টগুলি সারিবদ্ধ করা। wp_enqueue_scripts দেখুন।
  • থিমের বৈশিষ্ট্য যুক্ত করা যেমন Sidebars, Navigation Menus, Post Thumbnails, Post Formats, Custom Headers, Custom Backgrounds এবং আরও অনেক কিছু।
  • আপনার থিমের বেশ কয়েকটি টেম্পলেট ফাইলগুলিতে ব্যবহৃত ফাংশনগুলি সংজ্ঞায়িত করা।
  • আপনার থিমের জন্য বিকল্প বৈশিষ্ট্য অন্তর্ভুক্ত করে যাতে কিনা সাইট ওনার Sidebar, Navigation Menu, Post thumbnail, Custom Header, Custom Background এবং আরও অনেক বৈশিষ্ট্যগুলি নিয়ন্ত্রণ করতে পারেন।

ডিফল্ট ওয়ার্ডপ্রেস থিমটিতে একটি functions.php ফাইল রয়েছে যা এই বৈশিষ্ট্যগুলির অনেক কিছুকেই সঙ্গায়িত করে, তাই আপনি চাইলে এটিকে একটি মডেল হিসাবে ব্যবহার করতে পারেন। যেহেতু functions.php মূলত প্লাগইন হিসাবে কাজ করে, তাই এই ফাইলটি দিয়ে আপনি কী করতে পারেন সে সম্পর্কে আরও তথ্যের জন্য Function_Reference তালিকাটি সেরা জায়গা।

functions.php ফাইলে বা নির্দিষ্ট প্লাগইনে কখন ফাংশন যুক্ত করতে হবে তা সিদ্ধান্ত নেওয়ার জন্যঃ অনেক সময় আপনি দেখবেন আপনার তৈরী করা একটি ফাংশন একাধিক প্যারেন্ট থিমের জন্য প্রয়োজন হতে পারে। এই সমস্ত পরিস্থিতিতে নির্দিষ্ট থিমের জন্য একটি functions.php ব্যবহারের পরিবর্তে ফাংশনটি plugin অংশে তৈরি করা উচিত। এটি টেমপ্লেট ট্যাগ এবং অন্যান্য নির্দিষ্ট ফাংশন অন্তর্ভুক্ত করতে পারে। প্লাগইনগুলিতে থাকা ফাংশনগুলি সমস্ত থিম ব্যবহার করতে পারে।

টেমপ্লেট ফাইল

Templates হল পিএইচপি সোর্স ফাইল যা দর্শকদের দ্বারা অনুরোধ করা পৃষ্ঠাগুলি তৈরি করতে ব্যবহৃত হয় এবং এটি HTML আকারে দেখায়। টেমপ্লেট ফাইলগুলি এইচটিএমএল, পিএইচপি এবং WordPress Template Tags দিয়ে তৈরি।

আসুন দেখে নেওয়া যাক বিভিন্ন টেম্পলেট যেগুলিকে থিমের অংশ হিসাবে সংজ্ঞায়িত করা যায়। ওয়ার্ডপ্রেস আপনাকে আপনার সাইটের বিভিন্ন দৃষ্টিভঙ্গির জন্য পৃথক টেম্পলেট সঙ্গায়িত করতে অনুমতি দেয়। যদিও আপনার সাইটকে সম্পূর্ণরূপে কাজ করার জন্য এই সমস্ত বিভিন্ন টেম্পলেট ফাইল থাকা অপরিহার্য নয়। নির্দিষ্ট থিমটিতে কী টেমপ্লেটগুলি পাওয়া যায় তার উপর নির্ভর করে টেম্পলেটগুলি Template Hierarchy এর উপর ভিত্তি করে নির্বাচিত এবং উত্পন্ন হয়।

থিম ডেভেলপার হিসাবে আপনি টেমপ্লেটগুলি ব্যবহার করে যে পরিমাণ কাস্টমাইজেশন প্রয়োগ করতে চান তা চয়ন করতে পারেন। উদাহরণস্বরূপ, বেশিরভাগ ক্ষেত্রে, আপনি কেবলমাত্র index.php নামে পরিচিত একটি টেম্পলেট ফাইল ব্যবহার করতে পারেন, যা সাইটের দ্বারা উত্পন্ন এবং প্রদর্শিত সমস্ত পৃষ্ঠাগুলির জন্য টেমপ্লেট হিসাবে ব্যবহার করে। সর্বাধিক সাধারণ ব্যবহার হল বিভিন্ন উৎপাদিত ফলাফলের জন্য বিভিন্ন টেম্পলেট ফাইল ব্যবহার করা যার ফলে সাইটকে আরও ভালভাবে কাস্টমাইজেশন করা সম্ভব হয়।

টেমপ্লেট ফাইলগুলির তালিকা

ওয়ার্ডপ্রেস দ্বারা স্বীকৃত থিম ফাইলগুলির তালিকা এখানে দেওয়া হয়েছে। অবশ্যই, আপনার থিমটিতে অন্য কোনও স্টাইলশিট, চিত্র বা ফাইল থাকতে পারে। মনে রাখবেন যে ওয়ার্ডপ্রেসের সাথে নিম্নলিখিতগুলির বিশেষ অর্থ রয়েছে - আরও তথ্যের জন্য Template Hierarchy  অংশটি দেখুন।

style.css
মূল স্টাইলশিট এটি অবশ্যই আপনার থিমের সাথে অন্তর্ভুক্ত করা উচিত এবং এতে অবশ্যই আপনার থিমের তথ্য শিরোনামে থাকতে হবে।
rtl.css
RTL(Right to left) স্টাইলশিট। ওয়েবসাইটের পাঠ্যের দিকটি ডান থেকে বামে থাকলে এটি স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হবে। এটি the RTLer-এর প্লাগইন ব্যবহার করে উত্পন্ন করা যেতে পারে।
index.php
প্রধান টেম্পলেট। যদি আপনার থিমটি নিজস্ব টেমপ্লেট সরবরাহ করে তবে index.php উপস্থিত থাকতে হবে।
comments.php
কমেন্ট সেকশনের জন্য ব্যবহৃত টেমপ্লেট।
front-page.php
টেম্পলেটের প্রথম পৃষ্ঠা।
home.php
হোম পেজ টেমপ্লেট, যা পূর্বনির্ধারিতরূপে প্রথম পাতা। আপনি যদি কোনও static front page ব্যবহার করেন তবে এটি সর্বশেষ পোস্টের পাতার টেমপ্লেট।
single.php
একক পোস্ট টেম্পলেট। যখন একটি একক পোস্ট অনুসন্ধান করা হয় তখন ব্যবহৃত হয়। এটি এবং অন্যান্য সমস্ত কোয়েরি টেম্পলেটগুলির জন্য, কোয়েরি টেমপ্লেট উপস্থিত না থাকলে index.php ব্যবহৃত হয়।
single-{post-type}.php
কাস্টম পোস্ট ধরণের একক পোস্ট অনুসন্ধান করা হলে ব্যবহৃত একক পোস্ট টেম্পলেট। উদাহরণস্বরূপ, "book" নামের কাস্টম পোস্ট টাইপ থেকে একক পোস্ট প্রদর্শনের জন্য single-book.php ব্যবহার করা হবে। কাস্টম পোস্ট ধরণের জন্য কোয়েরি টেমপ্লেট উপস্থিত না থাকলে index.php ব্যবহৃত হয়।
page.php
Page টেম্পলেট। যখন পৃথক Page অনুসন্ধান করা হয় তখন ব্যবহৃত হয়।
category.php
category template. যখন কোনও বিভাগ অনুসন্ধান করা হয় তখন ব্যবহৃত হয়।
tag.php
tag template. এটি ব্যবহৃত হয় যখন ট্যাগ অনুসন্ধান করা হয়।
taxonomy.php
term template. যখন কাস্টম ট্যাক্সনোমিতে একটি শব্দ অনুসন্ধান করা হয় তখন ব্যবহৃত হয়।
author.php
author template. কোনও লেখকের ব্যাপারে অনুসন্ধান করা হলে ব্যবহৃত হয়।
date.php
তারিখ / সময় টেম্পলেট। একটি তারিখ বা সময় নিয়ে যখন সন্ধান করা হয় তখন এই টেম্পলেট ব্যবহৃত হয়। বছর, মাস, দিন, ঘন্টা, মিনিট, সেকেন্ড।
archive.php
সংরক্ষণাগার টেমপ্লেট। কোনও বিভাগ, লেখক বা তারিখ অনুসন্ধান করা হলে ব্যবহৃত হয়। নোট করুন যে এই টেমপ্লেটটি তাদের নিজ নিজ ক্যোয়ারির ধরণের জন্য category.php, author.php এবং date.php দ্বারা ওভাররাইড করা হয়।
search.php
অনুসন্ধান ফলাফল টেম্পলেট। যখন অনুসন্ধান করা হয় তখন ব্যবহৃত হয়।
attachment.php
সংযুক্তি টেম্পলেট। একক সংযুক্তি দেখার সময় ব্যবহৃত হয়।
image.php
চিত্র সংযুক্তি টেম্পলেট একটি একক চিত্র সংযুক্তি দেখার সময় ব্যবহৃত হয়। উপস্থিত না থাকলে attachment.php ফাইল ব্যবহার করা হবে।
404.php
404 Not Found টেমপ্লেট। যখন ওয়ার্ডপ্রেস কোয়েরির সাথে মেলে এমন কোনও পোস্ট বা পৃষ্ঠা খুঁজে পাবে না তখন ব্যবহৃত হয়।

এই ফাইলগুলির ওয়ার্ডপ্রেস সম্পর্কিত একটি বিশেষ অর্থ রয়েছে কারণ এটি Template Hierarchy অনুসারে, যখন উপলভ্য হয় এবং যখন সংশ্লিষ্ট Conditional Tag true return করে তখন index.php প্রতিস্থাপন হিসাবে ব্যবহৃত হয়। উদাহরণস্বরূপ, যদি কেবল একটি একক পোস্ট প্রদর্শিত হয়, is_single() ফাংশনটি true return করে এবং সক্রিয় থিমটিতে যদি একটি single.php ফাইল থাকে তবে সেই টেমপ্লেটটি পৃষ্ঠাটি তৈরি করতে ব্যবহৃত হয়।