The Loop در وردپرس – مقدمه

The Loop در وردپرس، مکانیزم پیش فرض هسته وردپرس می باشد که وردپرس برای گرفتن خروجی از انواع پست ها از بین Template Files های قالب شما، استفاده می کند.

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

اینکه وردپرس باید چه تعداد از پست های درخواست شده را بازیابی کند، از تعداد پست هایی که قرار است در هر صفحه نمایش داده شود (یا همان number of post per page ) معین می گردد که این تعداد در تنظیمات مربوط به بخش خواندن در وردپرس موجود می باشد.

the loop در وردپرس چگونه انجام می شود؟

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

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

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

شما از The Loop می توانید برای تعداد زیادی از کارها در وردپرس استفاده کنید، به عنوان مثال:

  • برای نمایش عنوان ها یا  titlesو خلاصه ها  یا  excerpts یک پست بر روی صفحه homepage سایت شما
  • برای نمایش محتوا و نظرات بر روی یک پست یا همان single post
  • برای نمایش محتواهای پست ها یا یک پست خاص بر روی یک صفحه جداگانه با استفاده از template tag ها
  • برای نمایش داده های مربوط به پست های سفارشی یا custom post type و همین طور فیلد های سفارشی custom fields

شما علاوه بر این می توانید با استفاده از سفارشی سازی The loop به راحتی محتواهای خود را در داخل Template Files ها نمایش داده و آن ها را دستکاری نمایید. ضمن اینکه توانایی ایجاد جستجوهای کاملا حرفه ای را با استفاده از The loop در وردپرس خواهید داشت.

نگاه دقیق تر به ساختار The Loop

حلقه ساده و ابتدایی در وردپرس به شکل زیر می باشد:

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        ... Display post content
    <?php endwhile; ?>
<?php endif; ?>

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

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

  • تابع have_posts در ابتدای حلقه، چک می کند که آیا پستی برای نمایش دادن در داخل دیتابیس وجود دارد یا خیر
  • اگر پست یا پست هایی موجود باشد، حلقه while تا رسیدن به آخرین پست موجود در پایگاه داده ادامه پیدا کرده و هر بار برای یک پست، اجرا می شود. تا زمانی که خروجی تابع have_post صحیح یا  trueباشد، حلقه while ادامه پیدا کرده و کدهای درون حلقه برای هر پست یک بار به صورت مجزا، اجرا خواهند شد.

استفاده از The Loop

شما می توانید از The Loop  در هر کدام از Template Files های خود در قالب استفاده نمایید. شما باید به چند نکته در هنگام استفاده از the loop دقت نمایید. فرض کنید که بخواهید از آن در فایل index.php یا هر Template Files دیگری استفاده کنید. به دلیل آنکه شما نمی خواهید فایل هدر شما بارهای بار در قالب شما تکرار نگردد، شما می باید دقیقا the loop را حتما پس از تابع get_header در فایل های خود استفاده نمایید، در غیر این صورت فایل شما بارها اجرا خواهد شد. برای مثال شما باید حتما the loop را بعد از get_header و به صورت زیر استفاده نمایید:

<?php get_header(); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    ... Display post content
<?php endwhile; endif; ?>

همان طور که در کدهای بالا نیز مشاهده نمودید، انتهای the Loop می باید با endwhile و endif به پایان برسد. در نظر داشته باشد که برای استفاده از The loop می باید حتما دستورات شما با if و while شده و با endwhile و endif به پایان برسند. فقط کد های که داخل این بخش باشند قابل اجرا در loop خواهند بود.

با استفاده از این ساختار، آنگاه هر template tag ای که بخواهید را می توانید در هنگام نمایش پست های خود و در داخل این ساختار، بکار ببندید و از آن برای فرمت دهی به کدهای خود استفاده نمایید.

یک مثال بسیار ساده در این مورد، می تواند کدی باشد که زیر می توانید ببینید:

<?php
    get_header();
    if ( have_posts() ) : while ( have_posts() ) : the_post();
        the_content();
    endwhile;
    else :
        _e( 'Sorry, no posts matched your criteria.', 'textdomain' );
    endif;
    get_sidebar();
    get_footer(); 
?>

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

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