مشروط ٹیگز آپ کی ٹیمپلیٹ فائلوں میں کلاسک تھیمز میں استعمال کیے جاسکتے ہیں تاکہ موجودہ صفحہ کی شکل و صورت کو ان شرائط کی بنیاد پر تبدیل کیا جا سکے جو موجودہ پیج سے میل کھاتی ہیں۔وہ ورڈپریس کو بتاتے ہیں کہ مخصوص حالات میں کون سا کوڈ ڈسپلے کرنا ہے۔مشروط ٹیگز عام طور پر “PHP if/else” مشروط بیانات کے ساتھ کام کرتے ہیں۔
کوڈ کا آغاز یہ دیکھنے کے لیے کیا جاتا ہے کہ آیا کوئی بیان درست ہے یا غلط۔اگر بیان درست پایا جاتا ہے تو، کوڈ کا پہلا سیٹ استعمال کیا جاتا ہے۔اگر یہ غلط ہے تو، کوڈ کا پہلا سیٹ چھوڑ دیا جاتا ہے، اور اس کے بجائے کوڈ کا دوسرا سیٹ (else کے بعد) استعمال کیا جاتا ہے۔
مثال کے طور پر، آپ پوچھ سکتے ہیں کہ آیا کوئی صارف لاگ ان ہے، اور پھر نتیجہ کی بنیاد پر ایک مختلف سلام پیش کرتے ہیں۔
Where to Use Conditional Tags
مشروط ٹیگ صرف اسی وقت آپ کے ڈیٹا کو تبدیل کرسکتے ہیں.جب مطلوبہ معلومات ڈیٹا بیس میں موجود ہوں تاکہ معلومات کو پہلے ہی آپ کے ڈیٹا بیس سے بازیافت کیا جا سکے یعنی استفسار(query) کا پہلے ہی چل ضروری ہے.
اگر آپ ڈیٹا موجود ہونے سے پہلے ایک مشروط ٹیگ استعمال کرتے ہیں، تو if/else بیان میں پوچھنے کے لیے کچھ نہیں ہوگا۔
یہ نوٹ کرنا ضروری ہے کہ ورڈپریس استفسار(query) کے چلنے سے پہلے functions.php فائل کو لوڈ کرتا ہے، لہذا اگر آپ اس فائل میں مشروط ٹیگ شامل کرتے ہیں، تو یہ کام نہیں کرے گا۔
مشروط ٹیگز کو لاگو کرنے کے دو طریقے:
- اسے ٹیمپلیٹ فائل میں رکھیں
- functions.php میں ایک فنکشن بنائیں جو ایک ‘action/filter’ سے جڑا ہو جو بعد میں شروع ہوتا ہے۔
ذیل میں وہ شرائط درج ہیں جن کے تحت درج ذیل مشروط بیانات میں سے ہر ایک درست ثابت ہوتا ہے۔ وہ ٹیگز جو پیرامیٹرز کو قبول کر سکتے ہیں نوٹ کیے گئے ہیں۔
The Main Page
()is_home
یہ شرط درست ہو جاتی ہے جب مرکزی بلاگ پیج دکھایا جا رہا ہو۔یہ عام طور پر معیاری الٹ کرانولوجیکل ترتیب میں ہوتے ہیں۔اگر اس کی بجائے آپ کا ہوم پیج ایک جامد(Static ) صفحہ پر سیٹ کیا گیا ہے، تو یہ صرف اسی صفحہ پر درست ثابت ہوگا جسے آپ نے Settings > Reading میں “Posts page” کے طور پر سیٹ کیا ہے۔
The Front Page
()is_front_page
یہ شرط اس وقت درست ہو جاتی ہے جب سائٹ کا صفحہ اول ظاہر کیا جاتا ہے، قطع نظر اس کے کہ یہ پوسٹس یا جامد(static) صفحہ دکھانے کے لیے سیٹ کیا گیا ہو۔
درست لوٹتا ہے جب:
- مرکزی بلاگ کا صفحہ دکھایا جا رہا ہے۔
- the Settings > Reading -> Front page displays option آپ کی تازہ ترین پوسٹس پر سیٹ ہے۔
OR
- Settings > Reading -> Front page displays کو ایک جامد(static ) صفحہ پر سیٹ کیا جاتا ہے۔
- فرنٹ پیج ویلیو وہ موجودہ صفحہ ہے جوظاہر کیا جا رہا ہے۔
The Administration Panels
()is_admin
جب ڈیش بورڈ یا ایڈمنسٹریشن پینلز دکھائے جارہے ہوں تو یہ حالت درست ہوجاتی ہے۔
A Single Post Page
()is_single
جب کوئی ایک پوسٹ (یا اٹیچمنٹ، یا کسٹم پوسٹ ٹائپ) ظاہر ہو رہی ہو تو درست ہو جاتی ہے۔ اگر آپ کسی صفحہ پر ہیں تو یہ شرط غلط ہو جاتی ہے۔
;is_single( ’17’ )
‘()is_single’ آئی.ڈی(ID) اور دیگر پیرامیٹرز کے ذریعے بھی کچھ پوسٹس کی جانچ کر سکتا ہے۔مندرجہ بالا مثال اس وقت درست ثابت ہوتی ہے جب پوسٹ 17 کو ایک پوسٹ کے طور پر دکھایا جا رہا ہو۔
is_single( ‘Irish Stew’ )
پیرامیٹرز میں پوسٹ کے عنوانات(titles) بھی شامل ہیں۔ اس صورت میں، یہ سچ ثابت ہوتا ہے جب عنوان(title) “آئرش سٹو” والی پوسٹ کو ایک ہی پوسٹ کے طور پر دکھایا جا رہا ہے۔
is_single( ‘beef-stew’ )
سچ ثابت ہوتی ہے جب پوسٹ سلگ “بیف اسٹیو” والی پوسٹ کو ایک ہی پوسٹ کے طور پر دکھایا جا رہا ہو۔
is_single( array( 17, ‘beef-stew’, ‘Irish Stew’ ) )
درست ہوتی ہے جب ایک پوسٹ جودکھائی جا رہی ہے وہ یا تو پوسٹ ID 17 ہے، یا post_name “beef-stew” ہے، یا post_title “Irish Stew” ہے ۔
is_single( array( 17, 19, 1, 11 ) )
اس وقت درست ہوتی ہے جب دکھائی جانے والی پوسٹ کی آئی.ڈی 17 ہے یا 19ہے یا 1ہے یا 11 ہے.
is_single( array( ‘beef-stew’, ‘pea-soup’, ‘chilli’ ) )
جب ایک پوسٹ دکھائی جا رہی ہے وہ یا تو ‘post_name “beef-stew”، post_name “pea-soup” یا post_name “chilli”‘ ہونے پر درست ہوتی ہے۔
is_single( array( ‘Beef Stew’, ‘Pea Soup’, ‘Chilli’ ) )
ایک پوسٹ جو دکھائی جا رہی ہے وہ صحیح ہے جب اس کا ٹائٹل ( ‘Beef Stew’, ‘Pea Soup’, ‘Chilli’ )میں سے کوئی ایک ہو.
نوٹ: یہ فنکشن پوسٹ ID، پوسٹ ٹائٹل، یا پوسٹ کے نام میں فرق نہیں کرتا ہے۔ اگر 17 کی پوسٹ آئی ڈی کی درخواست کی گئی تو “17” نام کی ایک پوسٹ دکھائی جائے گی۔ ممکنہ طور پر سلگ “17” والی پوسٹ کے لیے بھی ایسا ہی ہے۔
A Single Post, Page, or Attachment
()is_singular
کسی بھی is_single، is_page، اور is_attachment کے لیے درست لوٹاتا ہے۔ یہ پوسٹ کی اقسام کی جانچ کی اجازت دیتا ہے۔
A Sticky Post
()is_sticky
اگر موجودہ پوسٹ کے لیے “Stick this post to the front page” چیک باکس کو نشان زد کیا گیا ہے تو درست لوٹاتا ہے۔اس مثال میں، پوسٹ آئی ڈی کی کوئی دلیل(argument ) نہیں دی گئی ہے، اس لیے لوپ پوسٹ کے لیے پوسٹ آئی ڈی استعمال کی جاتی ہے۔
is_sticky( ’17’ )
جب پوسٹ 17 کو ایک sticky پوسٹ سمجھا جاتا ہے تو درست ہوتی ہے۔
A Post Type
()get_post_type
آپ اپنے مشروط ٹیگ میں ()get_post_type کو شامل کرکے یہ جانچ کر سکتے ہیں کہ آیا موجودہ پوسٹ کسی خاص قسم کی ہے۔یہ واقعتاََ ایک مشروط ٹیگ نہیں ہے، لیکن یہ موجودہ پوسٹ کی رجسٹرڈ پوسٹ کی قسم کو لوٹاتا ہے۔
{ … }if ( ‘book’ == get_post_type() )
()post_type_exists
اگر دی گئی پوسٹ کی قسم رجسٹرڈ پوسٹ کی قسم ہے تو درست لوٹاتا ہے۔یہ جانچ نہیں کرتا کہ آیا کوئی پوسٹ ایک مخصوص پوسٹ_ٹائپ ہے۔
نوٹ: یہ فنکشن is_post_type نامی فنکشن کی جگہ لے لیتا ہے جو مختصر طور پر 3.0 میں موجود تھا۔
A Post Type is Hierarchical
is_post_type_hierarchical( $post_type )
اگر یہ “post_type$” رجسٹرڈ ہونے پر درجہ بندی(hierarchical) کی سپورٹ کے ساتھ سیٹ کی گیئ ہے تو درست لوٹاتی ہے۔
is_post_type_hierarchical( ‘book’ )
اگر کتاب کی پوسٹ ٹائپ درجہ بندی(hierarchical) کے لیے بطورسپورٹ رجسٹر کی گئی تھی تو درست لوٹاتی ہے۔
A Post Type Archive
()is_post_type_archive
کسی بھی پوسٹ ٹائپ آرکائیو پر درست لوٹاتی ہے۔
is_post_type_archive( $post_type )
اس پوسٹ ٹائپ آرکائیو پیج پر درست لوٹاتی ہےجو post_type$ سے میل کھاتا ہو.یہ سنگل پوسٹ ٹائپ بھی ہو سکتی ہے اور پوسٹ ٹائپ کی ایک ایرے(array ) بھی ہو سکتی ہے.
پوسٹ ٹائپ آرکائیوز کو آن کرنے کے لیے، پوسٹ ٹائپ کو رجسٹر کرتے وقت “‘has_archive’ => true” استعمال کریں۔
Any Page Containing Posts
()comments_open
جب ورڈپریس لوپ میں موجودہ پوسٹ پر کارروائی کی جا رہی ہو تو تبصرے کی اجازت ہے۔
()pings_open
جب ورڈپریس لوپ میں پروسیس ہونے والی موجودہ پوسٹ کے لیے پنگز کی اجازت ہوتی ہے۔
A “PAGE” Page
یہ سیکشن سے مراد ورڈپریس پیجزہیں، نہ کہ آپ کے بلاگ سے کوئی عام ویب پیج، یا دوسرے لفظوں میں بلٹ ان پوسٹ_ٹائپ ‘پیج’ ۔
()is_page
جب کوئی بھی پیج دکھایا جا رہا ہو.
is_page( ’42’ )
درست ویلیو دیتی ہے جب آئی.ڈی 42 والا پیج دکھایا جا رہا ہو.
is_page( ‘About Me And Joe’ )
درست ویلیو دیتی ہے جب’About Me And Joe’ ٹائٹل والا پیج دکھایا جا رہا ہو.
is_page( ‘about-me’ )
درست ویلیو دیتی ہے جب’about-me’ سلگ(slug) والا پیج دکھایا جا رہا ہو.
is_page( array( 42, ‘about-me’, ‘About Me And Joe’ ) )
درست ویلیو دیتی ہے جب’about-me’ سلگ(slug) یا ‘About Me And Joe’ ٹائٹل یا 42 آئی.ڈی والا پیج دکھایا جا رہا ہو.
is_page( array( 42, 54, 6 ) )
درست ویلیو دیتی ہے جب پیج کی ID ایرے ایلیمنٹس میں سے کوئی ایک ہو.
Testing for Paginated Pages
آپ اس کوڈ کو یہ چیک کرنے کے لیے استعمال کر سکتے ہیں کہ آپ کسی پوسٹ یا پیج میں کون سے صفحے پر ہیں جسے QuickTag(“<!–nextpage–>”) کا استعمال کرتے ہوئے صفحات میں شامل کیا گیا ہے۔یہ مفید ہو سکتا ہے، مثال کے طور پر، اگر آپ میٹا ڈیٹا صرف اس پوسٹ کے پہلے صفحہ پر ظاہر کرنا چاہتے ہیں جسے متعدد پیجز میں تقسیم کیا گیا ہے۔
مثال 1
مثال 2
Testing for Sub-Pages
کوئی ()is_subpage فنکشن نہیں ہے، لیکن آپ اسے ایک چھوٹے سے کوڈ سے جانچ سکتے ہیں۔
ٹکڑا 1
آپ ٹکڑا 2(Snippet) میں موجودکوڈکی مدد سے اپنا ()is_subpage فنکشن بنا سکتے ہیں۔اور اسے اپنی functions.php فائل میں شامل کر سکتے ہیں۔یہ پیرنٹ پیج کو اسی طرح ٹیسٹ کرتا ہے جیسے Snippet 1-لیکن اگر موجود ہے تو پیرنٹ پیج کی ID واپس کرے گا، یا اگر نہیں ہے تو غلط۔
ٹکڑا 2
Snippet 1 جیسے سادہ ٹیسٹ کو استعمال کرنے کے بجائے Snippet 2 میں اس طرح کا فنکشن استعمال کرنے کا مشورہ دیا جاتا ہے،اگر آپ اکثر ذیلی صفحات(sub-pages) کی جانچ کرنے کا ارادہ رکھتے ہیں۔
یہ جانچنے کے لیے کہ آیا کسی پیج کا پیرنٹ ایک مخصوص صفحہ ہے، مثال کے طور پر “About ہم Snippet 3 میں موجود کوڈ کو ٹیسٹ کر سکتے ہیں۔یہ ٹیسٹ اس بات کی جانچ کرتے ہیں کہ آیا ہم زیربحث صفحہ کو دیکھ رہے ہیں، اور اس کے ساتھ ہی آیاکہ ہم کسی چائلڈ پیج کو بھی دیکھ رہے ہیں۔یہ ویب سائٹ کے مختلف حصوں کے لیے مخصوص متغیرات کو ترتیب دینے کے لیے مفید ہے، جیسے کہ ایک مختلف بینر کی تصویر، یا ایک مختلف عنوان۔
ٹکڑا 3
نوٹ: اگر آپ کے پاس صفحات کی ایک سے زیادہ سطحیں ہیں تو پیرنٹ پیج براہ راست اوپر والا صفحہ ہے نہ کہ درجہ بندی کے بالکل اوپر والا صفحہ۔
Is a Page Template
آپ کو اس بات کا تعین کر سکتے ہیں کہ آیا آپ پیج ٹیمپلیٹ میں ہیں یا نہیں یا ایک مخصوص پیج ٹیمپلیٹ استعمال کیا جا رہا ہے۔
()is_page_template
کیا پیج ٹیمپلیٹ استعمال کیا جا رہا ہے؟
is_page_template( ‘about.php’ )
کیا پیج ٹیمپلیٹ (about.php)استعمال کیا جا رہا ہے؟نوٹ کریں کہ دیگر شرائط کے برعکس، اگر آپ کسی خاص صفحہ کے ٹیمپلیٹ کی وضاحت کرنا چاہتے ہیں، تو آپ کو فائل کا نام استعمال کرنے کی ضرورت ہے، جیسے about.php یا my_page_template.php۔
نوٹ: اگر فائل سب ڈائرکٹری میں ہے تو آپ کو اسے بھی شامل کرنا چاہیے۔اس کا مطلب یہ ہے کہ یہ آپ کے تھیم کے لحاظ سے فائل کا راستہ ہونا چاہئے اور ساتھ ہی فائل کا نام بھی جیسے ‘page-templates/about.php’.
A Category Page
()is_category
جب کیٹگری آرکائیو کا پیج دکھایا جا رہا ہو۔
is_category( ‘9’ ):- درست ہوتا ہے جب اس کیٹگری کے لیے آرکائیو پیج دکھایا جا رہا ہو جس کی ID 9 ہے.
is_category( ‘Stinky Cheeses’ ):-درست ہوتا ہے جب دکھائے جانے والے آرکائیو پیج کی کیٹگری کا ٹائٹل ‘Stinky Cheeses’ ہو.
is_category( ‘blue-cheese’ ):-درست ہوتا ہے جب دکھائے جانے والے آرکائیو پیج کی کیٹگری کا سلگ ‘blue-cheese’ ہو.
is_category( array( 9, ‘blue-cheese’, ‘Stinky Cheeses’ ) ):-درست ہوتا ہے جب دکھائے جانے والے آرکائیو پیج کی کیٹگری کا سلگ ‘blue-cheese’ یا ٹائٹل ‘Stinky Cheeses’ یا اس کی آئی.ڈی 9 ہو.
in_category( ‘5’ ):- درست لوٹاتا ہے اگر موجودہ پوسٹ مخصوص کیٹگری آئی ڈی میں ہے۔
in_category( array( 1, 2, 3 ) ):-درست لوٹاتا ہے اگر موجودہ پوسٹ مخصوص کیٹگری آئی ڈیز 1،2،یا 3 میں ہے۔
in_category( array( 4, 5, 6 ) ) ! :-درست لوٹاتا ہے اگر موجودہ پوسٹ مخصوص کیٹگری آئی ڈیز 5،4،یا 6 میں نہ ہے۔
نوٹ: جانچ کرتے وقت اپنے املا(spelling) کو ضرور چیک کریں۔ “is” یا “in” میں بہت بڑا فرق ہے۔
A Tag Page
()is_tag
جب کوئی آرکائیو پیج دکھایا جا رہا ہو.
is_tag( ‘mild’ ):-درست لوٹاتی ہے جب ‘mild’ سلگ کے ساتھ ٹیگ کے لیے آرکائیو کا پیج دکھایا جا رہا ہو۔
is_tag( array( ‘sharp’, ‘mild’, ‘extreme’ ) ):- درست لوٹاتی ہے جب ‘mild’یا ‘sharp’یا’extreme’ سلگ کے ساتھ ٹیگ کے لیے آرکائیو کا پیج دکھایا جا رہا ہو۔
has_tag():-چیک کرتا ہے کہ آیا موجودہ پوسٹ میں دیئے گئے ٹیگز میں سے کوئی ہے۔
has_tag( ‘mild’ ):-درست لوٹاتا ہے جب موجودہ پوسٹ میں ‘mild’ کا ٹیگ ہوتا ہے۔
has_tag( array( ‘sharp’, ‘mild’, ‘extreme’ ) ):- درسٹ لوٹاتا ہے جب موجودہ پوسٹ میں ایرے(array) میں سے کوئی بھی ٹیگ موجود ہو۔
A Taxonomy Page
()is_tax
جب کوئی بھی ٹیکسانومی آرکائیو پیج ظاہر کیا جا رہا ہو۔
is_tax( ‘flavor’ ):- جب فلیور ٹیکسونومی کے لیے ٹیکسونومی آرکائیو کا صفحہ دکھایا جا رہا ہو۔
is_tax( ‘flavor’, ‘mild’):-جب ‘mild’ سلگ کے ساتھ فلیور ٹیکسونومی کے لیے ٹیکسونومی آرکائیو کا صفحہ دکھایا جا رہا ہے۔
is_tax( ‘flavor’, array( ‘sharp’, ‘mild’, ‘extreme’ ) ):-سچ لوٹتا ہے۔ جب فلیور ٹیکسونومی کے آرکائیو کو دکھایا جا رہا ہے تو اس میں “sharp”، “mild” یا “extreme” میں سے کوئی ایک سلگ ہوتا ہے۔
has_term():-چیک کریں کہ موجودہ پوسٹ میں دی گئی ٹرمز(terms) میں سے کوئی ہے یا نہیں۔ پہلا پیرامیٹر ایک خالی سٹرنگ ہونا چاہیے۔ یہ دوسرے پیرامیٹر بطور ٹیکسونومی سلگ/نام(slug/name) کی توقع کرتا ہے۔
has_term( ‘green’, ‘color’ ):-جب موجودہ پوسٹ میں ‘color’ ٹیکسونومی کی ٹرم ‘green’ ہو۔
has_term( array( ‘green’, ‘orange’, ‘blue’ ), ‘color’ ):- جب موجودہ پوسٹ میں ‘color’ ٹیکسونومی کی ٹرم ‘green’یا’orange’یا’blue’ ہو۔
An Author Page
()is_author
جب کوئی بھی آتھر پیج دکھایا جا رہا ہو۔
is_author( ‘4’ ):- جب آتھر کا وہ آرکائیو پیج دکھایا جارہو جس کی آئی.ڈی 4 ہو.
is_author( ‘Vivian’ ):-جب آتھر کا وہ آرکائیو پیج دکھایا جارہو جس کا نام ‘Vivian’ ہو.
is_author( array( 4, ‘john-jones’, ‘Vivian’ ) ):-جب مصنف کا آرکائیو پیج یا تو user ID 4، یا user_nicename “john-jones”، یا nickname “Vivian” ہو۔