Comment

থিম বেসিক

কন্ডিশনাল ট্যাগ

Estimated reading: 9 minutes 14 views Contributors

সারাংশ: এই অধ্যায়ে কন্ডিশনাল ট্যাগ নিয়ে আলোচনা করবো।

ক্লাসিক থিমগুলিতে, বর্তমান পেজ যে শর্তগুলি পূরণ করে তার উপর নির্ভর করে বিষয়বস্তু ডিসপ্লে পরিবর্তন করতে কন্ডিশনাল ট্যাগগুলি আপনার টেমপ্লেট ফাইলগুলিতে ব্যবহার করা যেতে পারে। নির্দিষ্ট শর্তের অধীনে কোন কোড ডিসপ্লে করতে হবে তা তারা WordPress-কে বলে দেয়। কন্ডিশনাল ট্যাগগুলি সাধারণত PHP if/else কন্ডিশনাল স্টেটমেন্টের সাথে কাজ করে।

কোডটি প্রথমে একটি স্টেটমেন্ট সত্য না মিথ্যা তা পরীক্ষা করে শুরু হয়। যদি স্টেটমেন্টটি সত্য বলে প্রমাণিত হয়, তাহলে প্রথম সেট কোড কার্যকর করা হয়। যদি এটি মিথ্যা হয়, তাহলে প্রথম সেট কোডটি এড়িয়ে যাওয়া হয় এবং পরিবর্তে দ্বিতীয় সেট কোড (else এর পরে) কার্যকর করা হয়।

উদাহরণস্বরূপ, আপনি জিজ্ঞাসা করতে পারেন যে কোনো ইউজার লগ ইন আছে নাকি, এবং তারপর ফলাফলের উপর নির্ভর করে একটি ভিন্ন অভিবাদন প্রদান করতে পারেন।

if ( is_user_logged_in() ) :
	echo 'Welcome, registered user!';
else :
	echo 'Welcome, visitor!';
endif;

ওয়ার্ডপ্রেস টেমপ্লেট হায়ারার্কির সাথে এই ট্যাগের ঘনিষ্ঠ সম্পর্ক লক্ষ্য করুন।

কন্ডিশনাল ট্যাগ কোথায় ব্যবহার করবেন

তথ্য পরিবর্তন করার জন্য একটি কন্ডিশনাল ট্যাগের জন্য, তথ্যটি ইতিমধ্যে আপনার ডাটাবেস থেকে পুনরুদ্ধার করা আবশ্যক, অর্থাৎ, কুয়েরি ইতিমধ্যে চলতে হবে। আপনি যদি ডেটা থাকার আগে একটি শর্তসাপেক্ষ ট্যাগ ব্যবহার করেন তবে if/else বিবৃতি সম্পর্কে জিজ্ঞাসা করার কিছু থাকবে না।

এটি লক্ষ্য করা গুরুত্বপূর্ণ যে WordPress কোয়েরি চালানোর আগে functions.php লোড করে, তাই আপনি যদি কেবল সেই ফাইলে একটি কন্ডিশনাল ট্যাগ অন্তর্ভুক্ত করেন তবে এটি কাজ করবে না।

কন্ডিশনাল ট্যাগ বাস্তবায়নের দুটি উপায়:

  1. এটি একটি টেম্পলেট ফাইলে রাখুন
  2. functions.php -এ এটির একটি ফাংশন তৈরি করুন যা পরবর্তী সময়ে ট্রিগার করে এমন একটি অ্যাকশন/ফিল্টারে হুক করে

শর্তাবলী

নিম্নে বর্ণিত প্রতিটি শর্তাধীন বিবৃতি সত্য প্রমাণিত হওয়ার শর্তাবলী তালিকাভুক্ত করা হল। যে সকল ট্যাগ পরামিতি গ্রহণ করতে পারে সেগুলো উল্লেখ করা হয়েছে।

মেইন পেজ

is_home()

এই শর্তটি সত্য হয় যখন মেইন ব্লগ পেজটি ডিসপ্লে হয়, সাধারণত স্ট্যান্ডার্ড বিপরীত সুশৃঙ্খল ক্রমে। যদি আপনার হোম পেজটির পরিবর্তে একটি স্ট্যাটিক পেজ সেট করা থাকে, তাহলে Settings Reading -এ আপনি যে পেজটিকে “পোস্টের পেজ” হিসাবে সেট করেছেন সেটিতে এটি সত্য প্রমাণিত হবে৷

ফ্রন্ট পেজ

is_front_page()

পোস্ট বা স্ট্যাটিক পেজ দেখানোর জন্য সেট করা হোক না কেন, সাইটের ফ্রন্ট পেজটি ডিসপ্লে হলে এই শর্তটি সত্য হয়।

True রিটার্ন করে যখন:

  • মূল ব্লগ পেজ ডিসপ্লে হচ্ছে এবং
  • Settings Reading Home Page ডিসপ্লে অপশনটি “আপনার সর্বশেষ পোস্টগুলি”-তে সেট করা আছে
  • অথবা
  • যখন Settings Reading Home Page ডিসপ্লে “একটি স্ট্যাটিক পেজ”-এ সেট করা হয় এবং
  • ফ্রন্ট পেজ ভেলুটি বর্তমান পেজ যা ডিসপ্লে হচ্ছে।

এডমিনিস্ট্রেশন প্যানেল

is_admin()

এই শর্তটি true রিটার্ন করে যখন ড্যাশবোর্ড বা অ্যাডমিনিস্ট্রেশন প্যানেলগুলি ডিসপ্লে হয়।

একটি সিঙ্গেল পোস্ট পেজ

is_single()

যখন কোনো একটি সিঙ্গেল পোস্ট (বা অ্যাটাচমেন্ট, বা কাস্টম পোস্ট টাইপ) ডিসপ্লে হচ্ছে তখন এটি true প্রদান করে। যদি আপনি কোনো পেজে থাকেন তাহলে এটি false প্রদান করে।

is_single( '17' );

is_single() ফাংশন আইডি এবং অন্যান্য প্যারামিটার দ্বারা নির্দিষ্ট পোস্টগুলি পরীক্ষা করতেও ব্যবহার করা যেতে পারে। উপরের উদাহরণটি সত্য প্রমাণিত হয় যখন পোস্ট 17 একটি সিঙ্গেল পোস্ট হিসেবে ডিসপ্লে হচ্ছে।

is_single( 'Irish Stew' );

প্যারামিটারগুলির মধ্যে পোস্টের টাইটেলও অন্তর্ভুক্ত। এই ক্ষেত্রে, “Irish Stew” টাইটেলের পোস্টটি একটি পৃথক পোস্ট হিসাবে দেখানো হলে এটি সত্য প্রমাণিত হয়।

is_single( 'beef-stew' );

এটি সত্য প্রমাণিত হবে যখন “beef-stew” পোস্ট স্ল্যাগ সহ কোনো পোস্ট একটি পৃথক পোস্ট হিসেবে দেখানো হবে।

is_single( array( 17, 'beef-stew', 'Irish Stew' ) );

যখন সিঙ্গেল পোস্টটি ডিসপ্লে হয়, তখন true রিটার্ন করে, যদি পোস্ট আইডি 17 হয়, অথবা পোস্ট_নাম “beef-stew”, অথবা পোস্ট_টাইটেল “Irish Stew” হয়।

is_single( array( 17, 19, 1, 11 ) );

ডিসপ্লে করা সিঙ্গেল পোস্টটি পোস্ট ID 17, পোস্ট ID 19, পোস্ট ID 1 বা পোস্ট ID 11 এর মধ্যে যেকোনো একটি হলে true রিটার্ন করে।

is_single( array( 'beef-stew', 'pea-soup', 'chilli' ) );

যখন ডিসপ্লে করা সিঙ্গেল পোস্ট “beef-stew”, “pea-soup” বা “chilli” পোস্ট_নাম হয়, তখন true রিটার্ন করে।

is_single( array( 'Beef Stew', 'Pea Soup', 'Chilli' ) );

সিঙ্গেল পোস্ট ডিসপ্লে হচ্ছে তখন true রিটার্ন করে যদি পোস্ট_টাইটেল হয় “Beef Stew”, “Pea Soup”, অথবা “Chilli”

দ্রষ্টব্য: এই ফাংশন পোস্ট আইডি, পোস্টের টাইটেল, বা পোস্টের নামের মধ্যে পার্থক্য করে না। যদি পোস্ট আইডি 17 অনুরোধ করা হয় তবে “17” নামে একটি পোস্ট দেখাবে। সম্ভবত একই “17” স্লাগ সহ একটি পোস্টের জন্যও প্রযোজ্য।

একক পোস্ট, পেজ বা অ্যাটাচমেন্ট

is_singular()

যেকোনো is_single, is_page এবং is_attachment এর জন্য true রিটার্ন করে। এটি পোস্ট টাইপ পরীক্ষা করার অনুমতি দেয়।

একটি স্টিকি পোস্ট

is_sticky()

যদি বর্তমান পোস্টের জন্য “Stick this post to the front page” চেকবক্সটি চেক করা থাকে তবে (true) রিটার্ন করে। এই উদাহরণে, কোনো পোস্ট আইডি আর্গুমেন্ট দেওয়া হয়নি, তাই লুপ পোস্টের জন্য পোস্ট আইডি ব্যবহার করা হয়।

is_sticky( '17' );

পোস্ট 17 কে যখন একটি স্টিকি পোস্ট হিসেবে বিবেচনা করা হয় তখন এটি true রিটার্ন করে দেয়।

একটি পোস্ট টাইপ

get_post_type()

বর্তমান পোস্টটি একটি নির্দিষ্ট টাইপের কি না তা পরীক্ষা করার জন্য আপনি আপনার শর্তসাপেক্ষে get_post_type() অন্তর্ভুক্ত করতে পারেন। এটি আসলে একটি শর্তসাপেক্ষ ট্যাগ নয়, তবে এটি বর্তমান পোস্টের রেজিস্টার্ড পোস্ট টাইপ রিটার্ন করে।

if ( 'book' == get_post_type() ) { ... }

post_type_exists()

একটি নির্দিষ্ট পোস্ট টাইপ রেজিস্টার্ড কিনা তা পরীক্ষা করে (true) বা (false) ফলাফল রিটার্ন করে। এটি কোনও পোস্ট নির্দিষ্ট পোস্ট_টাইপ কিনা তা পরীক্ষা করে না।

দ্রষ্টব্য: এই ফাংশনটি is_post_type নামে একটি ফাংশনকে প্রতিস্থাপন করে যা 3.0 ডেভেলপমেন্টে সংক্ষিপ্তভাবে বিদ্যমান ছিল।


একটি পোস্ট টাইপ শ্রেণিবদ্ধ (hierarchical)

is_post_type_hierarchical( $post_type )

এই $post_type রেজিস্টার করার সময় শ্রেণিবদ্ধ সাপোর্ট সহ সেট করা হলে true রিটার্ন করে।

 is_post_type_hierarchical( 'book' );

“এই ফাংশনটি true রিটার্ন করে দেয় যদি ‘book’ পোস্ট টাইপটি রেজিস্টার করার সময় ‘শ্রেণীবদ্ধ’ (hierarchical) সাপোর্ট হিসেবে সেট করা হয়ে থাকে।”

পোস্ট টাইপ আর্কাইভ

is_post_type_archive()

যেকোনো পোস্ট টাইপ আর্কাইভে সত্য (true) রিটার্ন করে দেয়।

is_post_type_archive( $post_type );

$post_type এর সাথে মিলে যায় এমন পোস্ট টাইপ আর্কাইভ পেজে থাকলে (true) রিটার্ন করে দেয় (একটি সিঙ্গেল পোস্ট টাইপ বা পোস্ট টাইপের একটি অ্যারে হতে পারে)।

পোস্ট টাইপ আর্কাইভ চালু করতে, পোস্ট টাইপ রেজিস্টার করার সময় ‘has_archive’ => true ব্যবহার করুন।

পোস্ট সমন্বিত যেকোনো পেজ

comments_open()

ওয়ার্ডপ্রেস লুপে প্রক্রিয়াকৃত বর্তমান পোস্টের জন্য মন্তব্য করার অনুমতি থাকলে।

pings_open()

ওয়ার্ডপ্রেস লুপে প্রক্রিয়াকৃত বর্তমান পোস্টের জন্য পিং করার অনুমতি থাকলে।

একটি “PAGE” পেজ

এই সেকশনটি ওয়ার্ডপ্রেস পেজগুলিকে বোঝায়, আপনার ব্লগ থেকে কোনও সাধারণ ওয়েবপেজ নয়, বা অন্য কথায় বিল্ট-ইন post_type ‘page’কে বোঝায়।

is_page()

যেকোনো পেজ ডিসপ্লে হলে।

is_page( '42' );

পেজ 42 (আইডি) ডিসপ্লে হলে।

is_page( 'About Me And Joe' );

‘About Me And Joe’ (post_title) সহ পেজটি ডিসপ্লে হলে।

is_page( 'about-me' );

‘about-me’ (post_name বা slug) সহ পেজটি ডিসপ্লে হলে।

is_page( array( 42, 'about-me', 'About Me And Joe' ) );

ডিসপ্লে করা পেজটি হয় post ID = 42, অথবা post_name হল “about-me”, অথবা post_title হল “About Me And Joe” হলে সত্য (true) রিটার্ন করে দেয়।

is_page( array( 42, 54, 6 ) );

ডিসপ্লে করা পেজটি হয় post ID = 42, অথবা post ID = 54, অথবা post ID = 6 হলে সত্য (true) রিটার্ন করে দেয়।

পেজযুক্ত পেজগুলি টেস্ট করা

আপনি এই কোডটি ব্যবহার করে পরীক্ষা করতে পারেন যে আপনি কোনও পোস্ট বা পেজের n-তম পেজে আছেন যা QuickTag ব্যবহার করে পেজগুলিতে বিভক্ত করা হয়েছে। এটি দরকারী হতে পারে, উদাহরণস্বরূপ, যদি আপনি একাধিক পেজে বিভক্ত পোস্টের শুধুমাত্র প্রথম পেজে মেটা-ডেটা দেখাতে চান।

উদাহরণ 1

PHP

$paged = $wp_query->get( 'page' );
if ( ! $paged || $paged < 2 ) :
	// এটি একটি পেজযুক্ত পেজ নয় (অথবা এটি কেবল একটি পেজযুক্ত পেজ/পোস্টের প্রথম পেজ)
else :
	// এটি একটি পেজযুক্ত পেজ।
endif;

উদাহরণ 2

PHP

$paged = get_query_var( 'page' ) ? get_query_var( 'page' ) : false;
if ( $paged == false ) :
	// এটি একটি পেজযুক্ত পেজ নয় (অথবা এটি কেবল একটি পেজযুক্ত পেজ/পোস্টের প্রথম পেজ)
else :
	// এটি একটি পেজযুক্ত পেজ।
endif;

সাব-পেজগুলি টেস্ট করা

is_subpage() ফাংশন না থাকলেও, আপনি একটু কোড ব্যবহার করে এটি পরীক্ষা করতে পারেন:

<?php
global $post; // if outside the loop

if ( is_page() && $post->post_parent ) :
	// This is a subpage
else :
	// This is not a subpage
endif;

স্নিপেট 1

স্নিপেট 2-এ দেওয়া কোড ব্যবহার করে আপনি আপনার নিজস্ব is_subpage() ফাংশন তৈরি করতে পারেন। এটি আপনার functions.php ফাইলে যুক্ত করুন। এটি স্নিপেট 1-এর মতো একইভাবে একটি প্যারেন্ট পেজের জন্য পরীক্ষা করে, তবে যদি থাকে তবে পেজের প্যারেন্ট ID রিটার্ন করে দেবে, বা না থাকলে মিথ্যা দেবে।

স্নিপেট 2

<?php
function is_subpage() {
	// Load details about this page.
	global $post;

	// Test to see if the page has a parent
	if ( is_page() && $post->post_parent ) {
		// return the ID of the parent post
		return $post->post_parent;

	// there is no parent so ...
	} else {
		// ... the answer to the question is false
		return false;
	}
}

যদি আপনি ঘন ঘন সাব-পেজের জন্য পরীক্ষা করার পরিকল্পনা করেন, তাহলে স্নিপেট 2-এর মতো একটি ফাংশন ব্যবহার করা বাঞ্ছনীয়, স্নিপেট 1-এর মতো সহজ পরীক্ষা ব্যবহার না করে।

নির্দিষ্ট পৃষ্ঠার পিতামাতা পরীক্ষা করা

উদাহরণস্বরূপ, “About” (পেজ ID pid 2 ডিফল্টরূপে) একটি নির্দিষ্ট পেজের প্যারেন্ট কিনা তা পরীক্ষা করতে, আমরা স্নিপেট 3-এ পরীক্ষাগুলি ব্যবহার করতে পারি। এই পরীক্ষাগুলি দেখার জন্য আমরা প্রশ্নবিদ্ধ পেজটি দেখছি নাকি তার কোনও চাইল্ড পেজ। এটি বিভিন্ন সেকশনের ওয়েব সাইটের জন্য নির্দিষ্ট ভেরিয়েবল সেট করার জন্য দরকারী, তাই একটি ভিন্ন ব্যানার ছবি, বা একটি ভিন্ন হেডিং।

স্নিপেট 3

<?php
// The page is "About", or the parent of the page is "About".
if ( is_page( 'about' ) || '2' == $post->post_parent ) {
	$bannerimg = 'about.jpg';
} elseif ( is_page( 'learning' ) || '56' == $post->post_parent ) {
	$bannerimg = 'teaching.jpg';
} elseif ( is_page( 'admissions' ) || '15' == $post->post_parent ) {
	$bannerimg = 'admissions.jpg';
// Just in case we are at an unclassified page, perhaps the home page
} else {
	$bannerimg = 'home.jpg';
}

স্নিপেট 4 হল একটি ফাংশন যা আপনাকে উপরের পরীক্ষাগুলি আরও সহজে চালানোর অনুমতি দেয়। এই ফাংশনটি প্রশ্নবিদ্ধ পেজ (“About”) বা এর কোনো সাব-পেজ (তাই “2” ID সহ একটি পেজের প্যারেন্টের সাথে একটি পেজ) দেখছি কিনা তা true রিটার্ন করবে।

স্নিপেট 4

আপনার functions.php ফাইলে স্নিপেট 4 যুক্ত করুন এবং প্রশ্নবিদ্ধ পেজটি কিনা বা পেজের সাব-পেজ কিনা তা দেখার জন্য is_tree(‘id’) কল করুন। স্নিপেট 3-এ, is_tree( ‘2’ ) “is_page( ‘about’ ) || ‘2’ == $post->post_parent” এর ভিতরে প্রথম if ট্যাগটি প্রতিস্থাপন করবে।

মনে রাখবেন যে আপনার যদি একাধিক স্তরের পেজ থাকে তবে প্যারেন্টের পেজটি সরাসরি উপরেরটি এবং একেবারে শীর্ষে থাকা নয়।

একটি পেজ টেমপ্লেট

আপনি একটি পৃষ্ঠা টেমপ্লেট ব্যবহার করছেন কিনা বা একটি নির্দিষ্ট পৃষ্ঠা টেমপ্লেট ব্যবহার করা হচ্ছে কিনা তা নির্ধারণ করতে দেয়।

is_page_template()

একটি পৃষ্ঠা টেমপ্লেট ব্যবহার করা হচ্ছে?

is_page_template( 'about.php' );

is_page_template( ‘about.php’ ); ‘about’ পেজ টেমপ্লেট ব্যবহার করা হচ্ছে? মনে রাখবেন যে অন্যান্য শর্তসাপেক্ষগুলির বিপরীতে, আপনি যদি একটি নির্দিষ্ট পেজ টেমপ্লেট নির্দিষ্ট করতে চান তবে আপনাকে about.php বা my_page_template.php এর মতো ফাইলের নাম ব্যবহার করতে হবে।

দ্রষ্টব্য: ফাইলটি যদি একটি সাবডিরেক্টরিতে থাকে তবে আপনাকে এটিও অন্তর্ভুক্ত করতে হবে। এর অর্থ হল এটি আপনার থিমের সাথে সম্পর্কিত ফাইলপথের পাশাপাশি ফাইলের নামও হওয়া উচিত, উদাহরণস্বরূপ ‘page-templates/about.php’।

একটি ক্যাটাগরি পেজ

is_category()

যখন কোনও ক্যাটাগরির আর্কাইভ পেজ ডিসপ্লে হচ্ছে।

উদাহরণ:

is_category( '9' );

যখন বিভাগ 9 এর আর্কাইভ পেজ ডিসপ্লে হচ্ছে।

is_category( 'Stinky Cheeses' );

যখন “Stinky Cheeses” নামের ক্যাটাগরির আর্কাইভ পেজ ডিসপ্লে হচ্ছে।

is_category( 'blue-cheese' );

যখন “blue-cheese” ক্যাটাগরির স্ল্যাগ সহ ক্যাটাগরির আর্কাইভ পেজ ডিসপ্লে হচ্ছে।

is_category( array( 9, 'blue-cheese', 'Stinky Cheeses' ) );

যখন পোস্টের ক্যাটাগরি হলো term_ID 9, অথবা স্লাগ “blue-cheese”, অথবা নাম “Stinky Cheeses”, তখন true রিটার্ন করে।

in_category( '5' );

বর্তমান পোস্টটি নির্দিষ্ট ক্যাটাগরি আইডিতে থাকলে true রিটার্ন করে।

in_category( array( 1, 2, 3 ) );

বর্তমান পোস্টটি 1, 2, বা 3 ক্যাটাগরিতে থাকলে true রিটার্ন করে৷

! in_category( array( 4, 5, 6 ) );

বর্তমান পোস্টটি যদি 4, 5, বা 6 ক্যাটাগরিতে না হয় তাহলে true রিটার্ন করে। নোট করুন! প্রথমেই.

বিঃদ্রঃ: বানান পরীক্ষার ব্যাপারে নিশ্চিত হোন। “is” এবং “in” এর মধ্যে পার্থক্য রয়েছে।

একটি ট্যাগ পেজ

is_tag()

যখন কোনও ট্যাগ আর্কাইভ পেজ ডিসপ্লে হচ্ছে।

is_tag( 'mild' );

যখন ‘mild’ স্লাগ সহ ট্যাগের জন্য আর্কাইভ পেজ ডিসপ্লে হচ্ছে।

is_tag( array( 'sharp', 'mild', 'extreme' ) );


ট্যাগ আর্কাইভ ডিসপ্লে হওয়ার সময় “sharp”, “mild”, বা “extreme” এর যেকোনো একটি স্লাগ থাকলে true রিটার্ন করে।

is_tag( ‘mild’ ); – “mild” স্ল্যাগ সহ ট্যাগের আর্কাইভ পৃষ্ঠা প্রদর্শিত হচ্ছে।

has_tag();

বর্তমান পোস্টে কোনও ট্যাগ আছে কি না তা পরীক্ষা করে। লুপের ভিতরে ব্যবহার করতে হবে।

has_tag( 'mild' );

যখন বর্তমান পোস্টে “mild” ট্যাগ আছে।

has_tag( array( 'sharp', 'mild', 'extreme' ) );

যখন বর্তমান পোস্টে অ্যারের যেকোনো ট্যাগ থাকে।

একটি ট্যাক্সোনমি পেজ

is_tax()

যখন কোনও ট্যাক্সোনমি আর্কাইভ পেজ ডিসপ্লে হচ্ছে।

is_tax( 'flavor' );

যখন flavor” ট্যাক্সোনমির জন্য “mild” স্ল্যাগ সহ আর্কাইভ পেজ ডিসপ্লে হচ্ছে।

is_tax( 'flavor', 'mild');


যখন ‘mild’ স্লাগের সাথে ফ্লেভার ট্যাক্সোনমির আর্কাইভ পেজ ডিসপ্লে হয়।

is_tax( 'flavor', array( 'sharp', 'mild', 'extreme' ) );

যখন ডিসপ্লে করা ফ্লেভার ট্যাক্সোনমির আর্কাইভের স্ল্যাগ “sharp”, “mild”, বা “extreme” এর মধ্যে কোনও একটি হয়, তখন true রিটার্ন করবে।

has_term()

খালি স্ট্রিং সহ প্রথম প্যারামিটার দিয়ে চেক করুন যে বর্তমান পোস্টে কোনো নির্দিষ্ট টার্ম আছে কি না। দ্বিতীয় প্যারামিটার হিসাবে ট্যাক্সোনমি স্লাগ/নাম প্রয়োজন।

has_term( 'green', 'color' );

যখন বর্তমান পোস্টে ট্যাক্সোনমি ‘color’ থেকে ‘green’ শব্দটি রয়েছে।

has_term( array( 'green', 'orange', 'blue' ), 'color' );

যখন বর্তমান পোস্টে অ্যারের কোনো টার্ম থাকে।

একটি রেজিস্টার্ড ট্যাক্সোনমি

taxonomy_exists()

যখন কোনও নির্দিষ্ট ট্যাক্সোনমি register_taxonomy() এর মাধ্যমে রেজিস্টার করা হয়।

একটি অথার পেজ

is_author()

যখন কোনও অথারের পেজ ডিসপ্লে হচ্ছে।

োis_author( '4' );

অথার সংখ্যা (ID) 4 এর আর্কাইভ পৃষ্ঠা ডিসপ্লে হচ্ছে।

is_author( 'Vivian' );


“যখন “Vivian” ডাকনামের অথারের আর্কাইভ পেজ ডিসপ্লে হয়।”

is_author( 'john-jones' );


“যখন ‘john-jones’ নামে অথারের আর্কাইভ পেজ ডিসপ্লে হয়।”

is_author( array( 4, 'john-jones', 'Vivian' ) );

যখন অথারের আর্কাইভ পেজটি হয় user ID 4, অথবা user_nicename “john-jones”, অথবা nickname “Vivian”।

একটি মাল্টি-অথার সাইট

is_multi_author()

যখন একাধিক অথার একটি সাইটের জন্য পোস্ট পাবলিশ করেছেন।

তারিখের পেজ

is_date()

যখন কোনো তারিখ-ভিত্তিক আর্কাইভ পেজ ডিসপ্লে হচ্ছে (যেমন, মাসিক, বার্ষিক, দৈনিক বা সময়-ভিত্তিক আর্কাইভ)।

is_year()

যখন একটি বার্ষিক আর্কাইভ ডিসপ্লে হচ্ছে।

is_month()

যখন একটি মাসিক আর্কাইভ ডিসপ্লে হচ্ছে।

is_day()

যখন একটি দৈনিক আর্কাইভ ডিসপ্লে হচ্ছে।

is_time()

যখন একটি ঘন্টাভিত্তিক, “মিনিটভিত্তিক”, বা “সেকেন্ডভিত্তিক” আর্কাইভ ডিসপ্লে হচ্ছে।

is_new_day()

পোস্টের তারিখ অনুসারে যদি আজ একটি নতুন দিন হয়। লুপের ভেতরে ব্যবহার করা উচিত।

যেকোনো আর্কাইভ পেজ

is_archive()

যখন যেকোনো ধরনের আর্কাইভ পেজ ডিসপ্লে হচ্ছে। ক্যাটাগরি, ট্যাগ, অথার এবং তারিখ-ভিত্তিক পেজগুলি সব ধরনের আর্কাইভ।

একটি সার্চ রেজাল্ট পেজ

is_search()

যখন একটি সার্চ রেজাল্ট পেজ আর্কাইভ ডিসপ্লে হচ্ছে।

একটি 404 Not Found পেজ

is_404()

যখন একটি “HTTP 404: Not Found” ত্রুটি ঘটার পরে একটি পৃষ্ঠা ডিসপ্লে হয়।

একটি Privacy Policy পেজ

is_privacy_policy()

যখন Privacy Policy পেজ ডিসপ্লে হচ্ছে।

একটি attachment

is_attachment()

যখন কোনো পোস্ট বা পেজের একটি অ্যাটাচমেন্ট ডকুমেন্ট ডিসপ্লে হচ্ছে। একটি অ্যাটাচমেন্ট হল একটি ছবি বা অন্য কোনো ফাইল যা পোস্ট এডিটরের আপলোড ইউটিলিটির মাধ্যমে আপলোড করা হয়। অ্যাটাচমেন্টগুলি তাদের নিজস্ব ‘পেজ’ বা টেমপ্লেটে ডিসপ্লে হতে পারে।

একটি সিঙ্গেল পেজ, সিঙ্গেল পোস্ট বা অ্যাটাচমেন্ট

is_singular()

যখন নিম্নলিখিত যেকোনো একটি true হয়: is_single(), is_page() অথবা is_attachment().

is_singular( 'book' );

True যখন কাস্টম পোস্ট টাইপ book এর একটি পোস্ট দেখা হচ্ছে।

is_singular( array( 'newspaper', 'book' ) );

True যখন কাস্টম পোস্ট টাইপ newspaper বা book এর একটি পোস্ট দেখা হচ্ছে।

সিন্ডিকেশন

  • is_feed()
    • যখন রিকুয়েস্ট করা সাইটটি একটি সিন্ডিকেশন হয়। এই ট্যাগটি সাধারণত ইউজাররা ব্যবহার করেন না; এটি WordPress দ্বারা অভ্যন্তরীণভাবে ব্যবহার করা হয় এবং প্লাগইন ডেভেলপারদের জন্য অ্যাভেইলেবল।

ট্র্যাকব্যাক

  • is_trackback()
    • যখন রিকুয়েস্ট করা সাইটটি WordPress এর Trackback ইঞ্জিনের সাথে অ্যাটাচ হয়। এই ট্যাগটি সাধারণত ইউজাররা ব্যবহার করেন না; এটি WordPress দ্বারা অভ্যন্তরীণভাবে ব্যবহার করা হয় এবং প্লাগইন ডেভেলপারদের জন্য অ্যাভেইলেবল।

প্রিভিউ

  • is_preview()
    • যখন একটি সিঙ্গেল পোস্ট ডিসপ্লে হচ্ছে তখন ড্রাফট মোডে দেখা হয়।

একটি Excerpt আছে

  • has_excerpt()
    • যখন বর্তমান পোস্টে একটি উদ্ধৃতাংশ থাকে।
  • has_excerpt(42)
    • যখন পোস্ট 42 (ID) এর একটি উদ্ধৃতাংশ থাকে।
<?php
// Get $post if you're inside a function global $post;
if ( empty( $post->post_excerpt ) ) {
	// This post has no excerpt
} else {
	// This post has excerpt
}

অন্যান্য ব্যবহার যখন আপনাকে স্বয়ংক্রিয়ভাবে দেখানো অংশটি লুকাতে হবে এবং কেবল আপনার পোস্টের উদ্ধৃতি ডিসপ্লে করতে হবে তখন।

<?php
if ( ! has_excerpt() ) {
	echo '';
} else {
	the_excerpt();
}

একটি টেক্সট বা কোডের জন্য স্বয়ংক্রিয় উদ্ধৃতি রিপ্লেস করুন।

কোনও একটি নেভিগেশন মেনু নির্ধারিত আছে কি না – has_nav_menu()

কোনও রেজিস্টার্ড নেভিগেশন মেনুর অবস্থানে কোনও মেনু নির্ধারিত আছে কি না তা পরীক্ষা করে।

ফলাফল: নির্ধারিত (true) বা নয় (false)

লুপের ভিতরে আছে কি না in_the_loop()

আপনি “লুপের ভিতরে” আছেন কি না তা পরীক্ষা করে। প্লাগইন অথারদের জন্য দরকারী, এই শর্তসাপেক্ষ লুপের ভিতরে থাকলে true ফলাফল দেয়।

সাইডবার সক্রিয় আছে কি না is_active_sidebar()

কোনও প্রদত্ত সাইডবার সক্রিয় (ব্যবহৃত হচ্ছে কি না) তা পরীক্ষা করে। সাইডবার (নাম, আইডি বা সংখ্যা দ্বারা চিহ্নিত) ব্যবহার করা হলে True ফলাফল দেয়, অন্যথায় ফাংশনটি False ফলাফল দেয়।

একটি নেটওয়ার্কের অংশ (মাল্টিসাইট) is_multisite()

বর্তমান সাইটটি ওয়ার্ডপ্রেস মাল্টিসাইট ইনস্টলেশনে আছে কি না তা পরীক্ষা করে।

মেইন সাইট (মাল্টিসাইট) is_main_site()

একটি সাইট একটি নেটওয়ার্কের মেইন সাইট কি না তা নির্ধারণ করে।

একটি নেটওয়ার্কের অ্যাডমিন (মাল্টিসাইট) is_super_admin()

কোনও ব্যবহারকারী নেটওয়ার্কের (সুপার) অ্যাডমিন কিনা তা নির্ধারণ করে।

একটি সক্রিয় প্লাগইন is_plugin_active()

কোনও প্লাগইন সক্রিয় আছে কি না তা পরীক্ষা করে।

একটি চাইল্ড থিম is_child_theme()

একটি চাইল্ড থিম ব্যবহৃত হচ্ছে কি না তা পরীক্ষা করে।

https://banglatuts.com/tutorials/%e0%a6%93%e0%a6%af%e0%a6%bc%e0%a6%be%e0%a6%b0%e0%a7%8d%e0%a6%a1%e0%a6%aa%e0%a7%8d%e0%a6%b0%e0%a7%87%e0%a6%b8-%e0%a6%ac%e0%a7%8d%e0%a6%b2%e0%a6%95-%e0%a6%a5%e0%a6%bf%e0%a6%ae-%e0%a6%a1%e0%a7%87/%e0%a6%a5%e0%a6%bf%e0%a6%ae-%e0%a6%ac%e0%a7%87%e0%a6%b8%e0%a6%bf%e0%a6%95/থিম কোনও ফিচার সাপোর্ট করে current_theme_supports()

বিভিন্ন থিম ফিচার উপস্থিত আছে কি না তা পরীক্ষা করে।

কার্যকরী উদাহরণ এই শর্তসাপেক্ষ ট্যাগগুলি কীভাবে ব্যবহার করা যায় তা দেখানোর জন্য এখানে কাজের নমুনা দেওয়া হল।

সিঙ্গেল পোস্ট এই উদাহরণটি দেখায় যে শুধুমাত্র একটি সিঙ্গেল পোস্ট পেজ দেখার সময় নির্দিষ্ট কিছু ডিসপ্লে করতে is_single() কীভাবে ব্যবহার করতে হয়:

<?php
if ( is_single() ) {
	echo 'This is just one of many fabulous entries in the ' . single_cat_title() . ' category!';
}

লুপে কন্ডিশনাল ট্যাগ ব্যবহার করার আরেকটি উদাহরণ। যখন এটি একটি সিঙ্গেল পোস্ট বা হোম পেজ ডিসপ্লে করা হয় তখন index.php তে বিষয়বস্তু বা উদ্ধৃতাংশ ডিসপ্লে করতে বেছে নিন।

<?php
if ( is_home() || is_single() ) {
	the_content();
} else {
	the_excerpt();
}

যখন আপনাকে কোনো কোড বা উপাদান এমন কোনো স্থানে ডিসপ্লে করতে হবে যা হোম পেজ নয়।

<?php if ( ! is_home() ) {
	// Insert your markup ...
}

মাল্টিপল কন্ডিশন পরীক্ষা করুন

পিএইচপি অপারেটর ব্যবহার করে আপনি সিঙ্গেল if স্টেটমেন্টে একাধিক কন্ডিশন পরীক্ষা করতে পারেন। এটি তখন কাজে লাগে যখন আপনাকে পরীক্ষা করতে হয় যে কন্ডিশনের সংমিশ্রণগুলি true না false.

<?php

// Check to see if any of 2 conditionals are met.
if ( is_single() || is_page() ) {
	// If it's a single post or a single page, do something special.
}
if ( is_archive() && ! is_category( 'nachos' ) ) {
	// If it's an archive page for any category EXCEPT nachos, do something special.
}
<?php

// Check to see if 3 conditionals are met.
if ( $query->is_main_query() && is_post_type_archive( 'products' ) && ! is_admin() ) {
	// If it's the main query on a custom post type archive for Products.
	// And if we're not in the WordPress admin, then do something special.
}

if ( is_post_type_archive( 'movies' ) || is_tax( 'genre' ) || is_tax( 'actor' ) ) {
	// If it's a custom post type archive for Movies.
	// Or it's a taxonomy archive for Genre.
	// Or it's a taxonomy archive for Actor, do something special.
}


তারিখ ভিত্তিক পার্থক্য

যদি কেউ আমাদের সাইটটি তারিখ অনুসারে ব্রাউজ করেন, তাহলে আসুন বিভিন্ন বছরের পোস্টগুলিকে আলাদা কালার ব্যবহার করে আলাদা করি:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

	<h2 id="post-<?php the_ID(); ?>">
		<a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a>
	</h2>

	<small>
		<?php the_time( 'F jS, Y' ); ?> by <?php the_author(); ?>
	</small>

	<?php
	// Are we showing a date-based archive?
	if ( is_date() ) {
		if ( date( 'Y' ) != get_the_date( 'Y' ) ) {
			// this post was written in a previous year
			// so let's style the content using the "oldentry" class
			echo '<div class="oldentry">';
		} else {
			echo '<div class="entry">';
		}
	} else {
		echo '<div class="entry">';
	}
	the_content( 'Read the rest of this entry »' );
	echo '</div>';
	?>

<?php endwhile; endif; ?>

ভেরিয়েবল সাইডবার কন্টেন্ট

রিডার বর্তমানে কোন পেজটি দেখছেন তার উপর ভিত্তি করে এই উদাহরণটি আপনার সাইডবারে বিভিন্ন কন্টেন্ট ডিসপ্লে করবে।

<div id="sidebar">

<?php
// Let's generate info appropriate to the page being displayed.
if ( is_home() ) {
	// We're on the home page, so let's show a list of all top-level categories.
	wp_list_categories( 'optionall=0&sort_column=name&list=1&children=0' );
} elseif ( is_category() ) {
	// We're looking at a single category view, so let's show _all_ the categories.
	wp_list_categories( 'optionall=1&sort_column=name&list=1&children=1&hierarchical=1' );
} elseif ( is_single() ) {
	// We're looking at a single page, so let's not show anything in the sidebar.
} elseif ( is_page() ) {
	// We're looking at a static page. Which one?
	if ( is_page( 'About' ) ) {
		// Our about page.
		echo 'This is my about page!';
	} elseif ( is_page( 'Colophon' ) ) {
		echo 'This is my colophon page, running on WordPress ' . bloginfo( 'version' ) . '';
	} else {
		// Catch-all for other pages.
		echo 'Vote for Pedro!';
	}
} else {
	// Catch-all for everything else (archives, searches, 404s, etc)
	echo 'Pedro offers you his protection.';
}
?>

</div><!-- #sidebar -->

সহায়ক 404 পেজ:

  • একটি 404 পেজ দেখায় যখন একটি ওয়েবসাইটে রিকুয়েস্ট করা পেজটি পাওয়া যায় না।
  • “Creating an Error 404 Page” আর্টিকেলটি ফ্রেন্ডলি বার্তা লেখার জন্য PHP কন্ডিশনাল ফাংশন isset() ব্যবহার করার উদাহরণ দেয়।

থিমের footer.php ফাইলে:

  • অন্যান্য টেমপ্লেট যেমন sidebar.php তে করা প্রশ্নগুলি কখনও কখনও কিছু কন্ডিশনাল ট্যাগকে ক্ষতিগ্রস্ত করতে পারে।
  • উদাহরণস্বরূপ, একটি কন্ডিশনাল ট্যাগ header.php তে সঠিকভাবে কাজ করে, কিন্তু থিমের footer.php তে কাজ করে না।
  • সমাধান হল ফুটাররে কন্ডিশনাল টেস্টের আগে wp_reset_query লিখতে হবে।
<?php
wp_reset_query();
if ( is_page( '2' ) ) {
	echo 'This is page 2!';
}

কন্ডিশনাল ট্যাগগুলির তালিকা

কন্ডিশনাল ট্যাগ হল বুলিয়ান ডেটা টাইপ যা আপনার টেমপ্লেট ফাইলগুলিতে বর্তমান পেজ যে শর্তগুলির সাথে মেলে তার উপর নির্ভর করে মেটারিয়ালগুলির ডিসপ্লে পরিবর্তন করতে ব্যবহার করা যেতে পারে। তারা ওয়ার্ডপ্রেসকে বলে যে নির্দিষ্ট কন্ডিশনের অধীনে কোন কোড ডিসপ্লে করতে হবে। কন্ডিশনাল ট্যাগগুলি সাধারণত PHP if/else কন্ডিশনাল স্টেটমেন্টের সাথে কাজ করে এবং ওয়ার্ডপ্রেস টেমপ্লেট হায়ারার্কি এর সাথে ঘনিষ্ঠ সম্পর্ক থাকে।

সতর্কতা: আপনি শুধুমাত্র WP_Query সেট আপ করার পরে বা অ্যাকশন হুকের সাথে কন্ডিশনাল ক্যোয়ারী ট্যাগ ব্যবহার করতে পারেন।

কন্ডিশনাল ট্যাগের সম্পূর্ণ তালিকা

Leave a Comment

Share this Doc

কন্ডিশনাল ট্যাগ

Or copy link

CONTENTS

Subscribe

×
Cancel