حلقه در وردپرس چه چیزهایی را می تواند نمایش دهد؟

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

هر حلقه در وردپرس، می تواند تعداد از اجزا مختلف را در هر پست برای شما نمایش دهد. به عنوان مثال برخی از template tag های که عموما در بسیاری از قالب ها استفاده می شوند، عبارتند از:

حلقه در وردپرس چگونه کار می کند؟
  • next_post_link : نمایش لینک پست منتشر شده بعدی که بعد از پست جاری در داخل حلقه در وردپرس قرار دارد.

  • previous_post_link : نمایش لینک پست منتشر شده قبلی که قبل از پست جاری در حلقه در وردپرس قرار دارد.

  • the_category : نمایش دسته بندی یا دسته بندی های مرتبط با پست یا صفحه جاری حلقه در وردپرس

  • the_author : نمایش نویسنده پست یا صفحه جاری حلقه در وردپرس

  • the_content : نمایش محتوای اصلی برای پست یا صفحه جاری حلقه وردپرس

  • the_excerpt : جهت نمایش خلاصه پست جاری در داخل حلقه در وردپرس، در نظر داشته باشید که وردپرس به صورت پیش فرض ۵۵ کلمه اول یک مطلب را به عنوان خلاصه یا excerpt آن مطلب در نظر گرفته و انتهای آن را با (…) و یا خواندن بیشتر یا read more، به محتوای کامل آن پست، لینک خواهد کرد. شما می توانید این مقدار پیش فرض در وردپرس را با استفاده از فیلد excerpt برای یک پست، طول تعداد کلمه ها برای نمایش خلاصه مطلب را تغییر داده و آن را به دلخواه خود، سفارشی سازید.

  • the_ID :جهت گرفتن ID یک پست یا صفحه در حلقه در وردپرس

  • the_meta : جهت گرفتن اطلاعات فیلد های سفارشی یا custom fields مرتبط با یک صفحه یا یک پست

  • the_shortlink : جهت گرفتن لینک کوتاه شده یک نوشته یا صفحه در حلقه در وردپرس. این لینک با استفاده از url اصلی نام سایت شما به همراه ID مربوط به پست یا صفحه مورد نظر، توسط وردپرس، ساخته می شود.

  • the_tags : جهت دریافت و نمایش برچسب یا برچسب های مرتبط با یک پست یا صفحه در داخل حلقه در وردپرس

  • the_title : جهت نمایش عنوان یک پست یا صفحه

  • the_time : جهت نمایش زمان یا تاریخ انتشار یک نوشته یا صفحه در وردپرس در داخل حلقه در وردپرس. در نظر داشته باشید که شما می توانید با استفاده از قالب بندی های تابع date در php ، زمان و تاریخ را به صورت دلخواه یا همان سفارشی شده، به نمایش در بیاورید.

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

به عنوان مثال شما می توانند از conditional tags زیر برای کنترل نمایش خود، استفاده نمایید:

  • is_home : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که صفحه جاری، صفحه خانه یا homepage باشد.

  • is_admin : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که داخل صفحه پنل سایت وردپرس یا administration screen باشد، در غیر این صورت، مقدار false را برمی گرداند.

  • is_single : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که صفحه جاری، یک پست تکی یا single post را نمایش دهد.

  • is_page : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که صفحه جاری، یک صفحه تکی یا single page باشد.

  • is_page_template : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که وردپرس تشخیص دهد که یک صفحه از یک قالب خاص صفحه یا یک specific page template استفاده نماید. مثال آن را در کدهای زیر می توانید مشاهده نمایید.

  • is_category : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که وردپرس تشخیص دهد که یک صفحه یا پست دارای آن دسته بندی خاص باشد. مثال آن را می توانید در زیر مشاهده نمایید.

  • is_tag : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که وردپرس تشخیص دهد که یک صفحه یا پست دارای آن یک برچسب خاص باشد. مثال آن را می توانید در زیر مشاهده نمایید.

  • is_author : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که داخل صفحه بایگانی متعلق به یک نویسنده خاص باشد.

  • is_search : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که صفحه جاری، یک صفحه نتایج جستجو در وردپرس باشد.

  • is_404 : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که صفحه جاری در وردپرس موجود نباشد.

  • has_excerpt : این تابع مقدار صحیح (یا همان true) را بر می گرداند در صورتی که صفحه یا نوشته جاری دارای چکیده مطلب یا همان excerpt باشد.

// Start the Loop.
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); 
/* * See if the current post is in news category and in sport tag category */
if (  is_category('news') &&  is_tag('sport') ) : ?>
 
    //Do something for if condition
    <?php else : ?>
    //Do something for else condition
    <?php endif; ?>

/* * See if the current page use from about-page.php template file */
<?php if (  is_page_template('about-page.php') ) : ?>
 
    //Do something for if condition
    <?php else : ?>
    //Do something for else condition
    <?php endif; ?>

// Stop the Loop, but allow for a "if not posts" situation
<?php endwhile; else :
/*
 * The very first "if" tested to see if there were any posts to
 * display. This "else" part tells what do if there weren't any.
 */
_e( 'Sorry, no posts matched your criteria.', 'textdomain' );
 // Completely stop the Loop.
 endif;
?>

مثال های استفاده حلقه در وردپرس

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

یک مثال ساده از استفاده حلقه در وردپرس : نمایش صفحه بایگانی بلاگ

اکثر بلاگ ها، صفحه ای با نام بایگانی نمایش پست ها یا همان blog archive page را دارند که در آن می توانند تعدادی از پست های منتشر شده در سایت شما را به همراه عنوان، عکس های thumbnail آن ها و چکیده مطلب آن ها را، به کاربران نمایش دهند.

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

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
    <h2><?php the_title(); ?></h2>
    <?php the_post_thumbnail(); ?>
    <?php the_excerpt(); ?>

<?php endwhile; else: ?>
    <?php _e( 'متاسفانه پستی برای نمایش وجود ندارد', 'textdomain' ); ?>
<?php endif; ?>

مثال دیگر از استفاده حلقه در وردپرس جهت نمایش یک نوشته یا پست به صورت مجزا

در وردپرس، هر پست برای خود به صورت مجزا دارای یک صفحه منحصر به فرد می باشد که در آن اطلاعات مربوط به آن پست، نمایش داده می شود. template tag ها به شما اجازه می دهند تا تعیین کنید که کدام یک از این اطلاعات به نمایش در بیایند و به وسیله آن ها شما می توانید به هر نحوی که می خواهید، صفحه نمایش یک پست را سفارشی سازی کنید.

در مثال زیر، خروجی حلقه در وردپرس، عنوان نوشته و محتویات آن می باشد. شما با استفاده از مثال زیر می توانید ابتدایی ترین اطلاعات در مورد یک پست که شامل عنوان و محتوای آن می باشد را، به نمایش در بیاورید. شما می توانید با استفاده از انواع template tag و همین طور conditional tag ها، محتوای نمایش داده شده را به دلخواه خود سفارشی سازی کنید، مثلا می توانید دسته بندی این پست را نیز در صفحه به نمایش درآورید:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 
<h1><?php the_title(); ?></h1>
    <?php the_content(); ?>
    <?php the_category() ?>
<?php endwhile; else: ?>
    <?php _e( 'متاسفانه اطلاعات پست مورد نظر در سایت موجود نمی باشد', 'textdomain' ); ?>
<?php endif; ?>

یک مثال سطح متوسط از کاربرد حلقه در وردپرس: دادن استایل های متفاوت به دسته بندی های مختلف

مثال زیر که یک استفاده سطح متوسط از the loop را وردپرس نمایش می دهد، دو کار را انجام می دهد:

  • ابتدا هر پست را به همراه عنوان، زمان انتشار، نویسنده آن، محتوا آن و دسته بندی های مرتبط با آن را (مشابه آنچه در مثال قبلی دیدید) نمایش می دهد
  • به شما اجازه می دهد که برای دسته بندی با ID برابر با ۳، از استایل متفاوت و ساختار HTML متفاوتی استفاده کنید. این امر با استفاده از تگ قالب با نام in_category انجام می شود

به کامنت های گذاشته شده در داخل حلقه برای فهم بیشتر مطلب، حتما دقت کنید:

// Start the Loop.
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); 
/* * See if the current post is in category 3. 
   * If it is, the div is given the CSS class "post-category-three".
   * Otherwise, the div is given the CSS class "post".
*/
if ( in_category( 3 ) ) : ?>
 
<div class="post-category-three">
    <?php else : ?>
<div class="post">
    <?php endif; ?>
 
        // Display the post's title.
        <h2><?php the_title() ?></h2>
 
        // Display a link to other posts by this posts author.
        <small><?php _e( 'Posted by ', 'textdomain' ); the_author_posts_link() ?></small>
 
        // Display the post's content in a div.
        <div class="entry">
            <?php the_content() ?>
        </div>
 
        // Display a comma separated list of the post's categories.
        <?php _e( 'Posted in ', 'textdomain' ); the_category( ', ' ); ?>
 
    // closes the first div box with the class of "post" or "post-cat-three"
    </div>
 
// Stop the Loop, but allow for a "if not posts" situation
<?php endwhile; else :
/*
 * The very first "if" tested to see if there were any posts to
 * display. This "else" part tells what do if there weren't any.
 */
_e( 'Sorry, no posts matched your criteria.', 'textdomain' );
 // Completely stop the Loop.
 endif;
?>

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

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