ساختن یک وبسایت با وردپرس به شما انعطاف بسیاری را برای استفاده از ظاهر و کارایی آن میدهد. وقتی که شما عمیقتر با مسئله توسعه پوستههای وردپرس درگیر میشوید، به زمانهایی برمیخورید که در آن ها دوست دارید صفحه خاص، دستهبندی یا برگهای منحصر به فرد را نشانه بگیرید. در این حالت، شرط منطقی، چیزی است که شما به آن نیاز دارید.
شرطهای منطقی از ویژگی های قدرتمند هر زبان برنامهنویسی است. در تعریف عامیانه میتوانیم اینطوری بگوییم که شرط منطقی عبارت است از یک «اگر» که اگر درست باشد یکسری کارها انجام میشود و اگر نه کاری دیگر. یک مثال ساده این است که بررسی کنیم، آیا بازدید کننده در صفحه اصلی وبسایت حضور دارد یا خیر. با استفاده از این شرط های منطقی است که تصمیم میگیریم چه زمانی اسلایدر فعال شود و یا اینکه چه زمانی محتوای اصلی نمایش داده شود.
با تشکر از وردپرس، تیم توسعه آن یکسری تگهای مربوط به شرطها گذاشته اند که به ما اجازه میدهند در سناریوهای مختلف آنها را امتحان کنیم. آنها به خوبی مستندسازی شده اند و به شما این اجازه را میدهند که پوستهتان را کاربردی تر کنید.
امروز قصد داریم به یکسری از این تگ ها نگاه کنیم و متوجه شویم که چگونه می شود آن ها را در وبسایت خودمان پیاده سازی کنیم.
یک نکته در استفاده از تگهای شرط
تگهای مربوط به شروط در وردپرس، همگی قطعههایی از پیاچپی هستند و برای استفاده از آنها باید در پوسته فعال وبسایت قرار بگیرد. مکانهای مختلفی برای قرار دادن تگهای شرطی وجود دارد. اگر تا به حال چنین کاری را انجام ندادهاید و با ساختار فایل ها آشنایی ندارید ایده بسیار خوبی است که اگر مستندات مربوط به پوسته وردپرس را مطالعه کنید.
به یاد داشته باشید که قبل از پیاده سازی کدها در وبسایت زنده بهتر است که آنها را روی یک محیط آزمایشی در لوکالهاست -برای مثال- پیادهسازی کنید. به یاد داشته باشید که یک اشتباه برای اینکه وبسایت شما به «صفحه سفید مرگ» منتقل شود کافی است. پس بهتر است که قبل از هرچیزی مراقب کارهایی که انجام میدهید باشید.
is_home()
مورد اول، یکی از مواردی است که خیلی اوقات باعث سردرگمی توسعه دهندگان شده است. با نگاه کردن به تگ شاید به این نتیجه برسید که این تگ در حال بررسی کردن صفحه خانگی وبسایت شماست. اما اینگونه نیست.
در حقیقت این تگ به دنبال برگهای میگردد که شما آن را به عنوان برگه نوشتهها قرار دادهاید، این برگه را در قسمت تنظیمات > خواندن در داشبورد وردپرس تعیین میکنید. به صورت پیشفرض وردپرس صفحه اصلی وبسایت شما را به عنوان صفحه لیست مطالب خواندنی در نظر میگیرد اما وبسایتهایی نیز وجود دارند که برای صفحه اصلی خانهشان از یک صفحه ایستا استفاده می کنند.
برای مثال اگر شما صفحهای دارید که آن به برگه وبلاگ شما متصل شده است، میتوانید با تگ زیر آن را پیدا کرده و شرط لازم را قرار دهید:
// If this the Posts page, display a message.
if ( is_home() ):
echo ‘<h2>Thanks for visiting our blog!</h2>’;
endif;
is_front_page()
برعکس تگ قبلی، is_front_page() به دنبال صفحهای میگردد که به عنوان صفحه خانگی شما در نظر گرفته شده است. این موضوع هیچ ربطی به این صفحه به چه شکلی باشد -ایستا یا …- ندارد. صادقانه بگویم این موارد خیلی واضح نیستند و برای زمانی که بخواهید پوسته خودتان را توسعه دهید بسیار مهم و ضروری هستند.
یک مورد بسیار مهم و خوب در رابطه با این تگ این است که بعدها اگر صفحه مربوطه را تغییر دهید، تگ دوباره به درستی نشان داده میشوند. راههای دیگری نیز برای تعیین یک صفحه وجود دارد اما این راه شما را از تغییرات ناگهانی و مشکلات آن دور نگه میدارد.
<?php
// If this is the home page, show a special message.
if ( is_front_page() ) { ?>
<h1>Welcome</h1>
<?php
// Otherwise, show the page title.
} else { ?>
<?php the_title( ‘<h1 class=”entry-title”>’, ‘</h1>’ ); ?>
<?php } ?>
is_single() و is_page()
هرکدام این تگها کاربردی دوگانه از خود نشان میدهند. is_single() دنبال این میگردد که ببیند یک آدرس، نوشته است یا خیر. البته این نوشته می تواند از هر نوعی باشد (استاندارد، ویدیو و…). مشابه این وضعیت، is_page() زمانی مقدار درست را برگشت میدهد که آدرس مربوط به یک برگه باشد. به صورت پیشفرض هدف هر دو تگ محتوایی است که در زیر چتر عنوان برگه یا نوشته قرار میگیرد. این دو تگ از موارد پراستفاده در بین تگهای دیگر است.
<?php
// Target all posts.
if ( is_single() ):
echo ‘You are on a single post.’;
endif;
// Target all pages.
if ( is_page() ):
echo ‘This is a page’;
endif; ?>
همچنین میتوانید از قدرت این تگها برای هدف قرار دادن یک برگه یا نوشته خاص با استفاده از آیدی آن استفاده کنید:
<?php
// Target About Us
if ( is_page( ‘about-us’ ) ): ?>
<a href=”#”><img src=”images/call-to-action.png” alt=”See Our Products”></a>
<?php endif; ?>
با استفاده از آرایه نیز شما میتوانید قسمتهای مختلف محتوا را هدف قرار دهید:
<?php
// Target About Us and Contact Us pages.
if ( is_page( array(‘about-us’, ‘contact-us’) ) ): ?>
<a href=”#”><img src=”images/call-to-action.png” alt=”See Our Products”></a>
<?php endif; ?>
is_tax() و has_term()
Taxonomies راهی بسیار مناسب برای دستهبندی محتوا در وبسایت هستند. دو مورد از این Taxonomiesها در وردپرس، دستهبندیها و تگها هستند. اما در کنار این وردپرس به ما این اجازه را داده که بتوانیم Taxonomiesهای مربوط به خودمان را نیز درست کنیم. برای مثال شما یک وبسایت نقد و بررسی موسیقی دارید و یک دسته خاص به اسم «سبکها» دارید که زیر شاخههای متفاوتی از جمله «راک»، «پاپ»، «رپ» و… احتیاج دارد.
is_tax() یک برگه آرشیو از دستهبندیها را هدف میگیرد. اگر به مثال موسیقی برگردیم، این حالت را بهتر متوجه میشویم. تصور کنید که دنبال دستهبندی مربوط به هر سبک میگردید، در این حالت این تگ شما را کمک میکند.
<?php
// Display a message on our Genre archive pages.
if (is_tax(‘genre’,’rock’,’hip-hop’,’jazz’) ):
echo ‘<h2>This is a genre archive. Enjoy!</h2>’;
endif; ?>
has_term() مطلب کنونی را بسته به اینکه به چه دستهای تعلق دارد هدف قرار میگیرد. این موضوع بسیار مفید خواهد بود، به خصوص برای زمانی که ما بخواهیم برای هر مطلب از یک سبک خاص، یک تصویر را بارگذاری کنیم.
<?php
// Show an image for the Rock genre.
if (has_term(‘rock’,’genre’) ): ?>
<img src=”/images/rock-and-roll.gif” alt=”Rock and Roll, Dude!”>
<?php endif; ?>
is_page_template()
بعد از اینکه با ساختارهای طبقهبندی در وردپرس آشنا شدید، حال ممکن است دوست داشته باشید که قالبهای برگهای سفارشی برای خودتان ایجاد کنید. is_page_template() به شما این اجازه را میدهد که به قالب برگه کنونی دسترسی داشته باشید. حتی میتوانید از این موضوع که آیا برگهای از یک قالب خاصی استفاده میکند یا خیر نیز مطلع شوید.
در هر حال شما باید در پیدا کردن قالب برگههای خاص دقت کافی کنید. از آنجایی که این تگ با نام فایلها در ارتباط است، برخی اوقات ممکن است برای ادامه کار نیاز به این داشته باشد که نام برگهای را تغییر دهید، در چنین حالتی برای اینکه وبسایت بهم نریزد نیاز دارید که کل وبسایت را بروزرسانی کنید.
<?php
// Add a search form to the Services page template.
if (is_page_template(‘services.php’) ):
?>
<?php get_search_form(); ?>
<?php endif; ?>
ملاقات با تمام شروط
با وجود آنکه این مطلب تنها نگاهی خلاصهوار و کوتاه به این بود که چگونه از تگهای شرطی استفاده کنید، اما میتواند امیدی برای این باشد که شما برای یادگیری موارد بیشتری نیز تلاش کنید. یکبار که شما استاد استفاده از شروط منطقی شدید، پس از آن میتوانید وبسایت را به هر حالتی که دوست دارید تغییر دهید. آنها میتوانند به شما کنترل کاملی برای تغییر شکل و ظاهر وبسایت بدهند و به شما این امکان را بدهند که بتوانید از تمام کارایی سیستم مدیریت محتوا استفاده ببرید.