مثال های کاربردی تگ های شرطی وردپرس

در این قسمت از آموزش طراحی قالب وردپرس می خواهیم چندین مثال کاربردی را از تگ های شرطی وردپرس بیان نماییم تا با کاربردهای آن در وردپرس آشنا گردیم.

در بخش اول از این بخش که مربوط به استفاده از conditional tags در وردپرس بوده، کلیه توابع مربوط به تگ های شرطی وردپرس توضیح داده شد. در این قسمت می خواهیم تا کاربرد آن ها با مثال را شرح دهیم.

با درک این مثال ها شما قادر خواهید بود که به راحتی از تگ های شرطی وردپرس در هرجایی از کدهای خود که نیاز دارید، از آن ها استفاده کنید.

مثال های کاربردی تگ های شرطی وردپرس

استفاده از تگ های شرطی وردپرس برای تشخیص یک Single Post

شما می توانید با استفاده از تگ های شرطی وردپرس ، برای مشخص کردن یک پست به صورت مجزا، استفاده کنید. برای این کار می توانید از تگ شرطی is_single درون کدهای خود استفاده نمایید.

مثال زیر نشان می دهد که شما چگونه می توانید با تشخیص اینکه پست نمایش داده یک Single Post می باشد، متن خاصی را در بین کدهای خود به نمایش در آورید.

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

یکی دیگر از مثال های پرکاربرد تگ های شرطی وردپرس برای طراحی قالب وردپرس، استفاده از آن ها داخل حلقه وردپرس یا همان the Loop می باشد. شما می توانید با استفاده از تگ های شرطی وردپرس، تشخیص دهید که آیا پست نمایش داده شده در داخل Template Files شما (به عنوان مثال index.php ) به صورت کامل به نمایش درآید و یا فقط چکیده مطلب آن به نمایش دربیاید.

در مثال زیر، ابتدا بررسی می شود که آیا صفحه مورد نظر، صفحه اصلی بلاگ بوده و همین طور پست، یک Single Post باشد. در این صورت کل محتوای آن به عنوان خروجی بازگشت داده می شود اما در صورتی که این شرط برقرار نباشد، تنها چکیده یا خلاصه مطلب به نمایش در خواهد آمد.

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

یک مثال کاربردی دیگر از تگ های شرطی وردپرس این می باشد که بخواهیددر هر جایی به جز صفحه Home Page خود، کدی را به نمایش دربیاورید. در این صورت می توانید از تگ شرطی is_home به صورت زیر استفاده نمایید:

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

استفاده از تگ های شرطی وردپرس برای تست شرط های چندگانه

شما می توانید تگ های شرطی وردپرس یا همان conditional tags را با عملگر های پی اچ پی یا PHP operator ترکیب کرده و از آن ها برای ارزیابی کردن شرط های چندگانه در یک بلاک مجزا if ، استفاده نمایید.

این به این معنی خواهد بود که شما می توانید عبارت های پیچیده تری را با استفاده از تگ های شرطی وردپرس ، چک کرده و بررسی نمایید. دو مثال زیر، کاربردهای این مورد را به شما نشان می دهد.

// Check to see if 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
}

در مثال دوم نیز تگ های شرطی وردپرس برای تصمیم گیری اینکه چه چیز به نمایش دربیاید و همین طور برای تغییر layout صفحه، مورد استفاده قرار گرفته اند

// 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
 
}
 
<h3>Date Based Differences</h3>
 
If someone browses our site by date, let's distinguish posts in different years by using different colors:
 
<?php // this starts The Loop
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2 id="post-<?php the_ID(); ?>">
<a title="Permanent Link to <?php the_title(); ?>" 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 »' );
?></div>

استفاده از تگ های شرطی وردپرس برای نمایش محتوا سایدبار به صورت داینامیک

در این مثال، با استفاده از تگ های شرطی وردپرس، می توانیم تصمیم گیری کنیم که بسته به اینکه چه صفحه ای در حال لود شدن است، محتوای سایدبار موجود در آن صفحه، تغییر نماید:

<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.";
} // That's all, folks!
?>
</div>

استفاده از تگ های شرطی برای نمایش صفحه ۴۰۴

یکی دیگر از مثال های پرکاربرد تگ های شرطی وردپرس ، استفاده از تابع isset می باشد. به وسیله این تگ شرطی در وردپرس می توانیم تشخیص دهیم که آیا آیتم مورد نظر set شده است یا خیر. در صورت set نشده بودن، صفحه ۴۰۴ برای کاربر به نمایش در خواهد آمد.

برطرف کردن درست کار نکردن تگ های شرطی وردپرس در موارد خاص

گاهی اوقات در زمان هایی که از کوئری هایی در وردپرس استفاده کرده اید که در داخل یک template file از template files های دیگری استفاده کرده باشید، ممکن است تگ های شرطی در وردپرس ، در آن جا به درستی کار نکنند. مثلا شما در بعضی از template files ها نیاز دارید تا از فایلی مانند sidebar.php استفاده کنید اما تگ های شرطی وردپرس در آن به درستی اجرا نمی شوند.

به عنوان مثال، تگ شرطی شما ممکن است در header.php به درستی کار کند اما همان تگ شرطی در فایل فوتر قالب وردپرس یعنی footer.php به درستی کار نکند. راه حلی که برای این امر وجود دارد این می باشد که باید قبل از تست کردن conditional tags در فوتر، کلیه کوئری های قبلی را توسط wp_reset_query رست نمایید. مثال زیر این مورد را نشان می دهد.

<?php wp_reset_query();
 if ( is_page( '2' ) ) {
  echo 'This is page 2!';
 }
?>

راهنما برای خواندن سایر مقالات سایت به صورت دسته بندی شده:

شما می توانید از طریق لینک های کاربردی زیر به سایر مقالات سایت که کاملا بصورت طبقه بندی شده وجود دارد، مراجعه نموده و از آن ها استفاده کنید: