وده هيساعدك تتحكم في شكل عرض المقالات في home.php أو أي مكان تاني في القالب.
يعني إيه WordPress Loop؟
الـ Loop هو قلب أي قالب ووردبريس.
هو المسئول عن استرجاع وعرض المقالات أو الصفحات أو أي نوع محتوى تاني.
أول ما المستخدم يدخل صفحة، ووردبريس بيراجع الاستعلام (Query) ويبدأ يعرض النتائج من خلال الـ Loop.
الفرق بين loop الافتراضي و loop المخصص
النوع | بيشتغل على إيه | تحكمك فيه |
---|---|---|
الافتراضي | نتائج الاستعلام التلقائي | محدود |
المخصص | باستخدام WP_Query | تحكم كامل بالمصادر، الترتيب، التصنيفات |
كود الـ Loop الافتراضي
بيستخدم have_posts()
و the_post()
:
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<article>
<h2><?php the_title(); ?></h2>
<p><?php the_excerpt(); ?></p>
</article>
<?php endwhile; else : ?>
<p>مفيش مقالات.</p>
<?php endif; ?>
إنشاء Loop مخصص باستخدام WP_Query
لما تحب تعرض مثلاً 5 مقالات بس من نوع معين، تستخدم WP_Query
:
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => 5
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post(); ?>
<div class="custom-post">
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<p><?php the_excerpt(); ?></p>
</div>
<?php endwhile;
wp_reset_postdata();
else :
echo "<p>مفيش نتائج.</p>";
endif;
?>
تخصيص Loop لعرض المقالات من تصنيف معين
مثلاً لو عايز تعرض بس مقالات من التصنيف “أخبار”:
$args = array(
'category_name' => 'أخبار',
'posts_per_page' => 4
);
أو تعرض مقالات بـ tag معين:
$args = array(
'tag' => 'وردبريس'
);
إضافة pagination للـ Loop
$args = array(
'posts_per_page' => 3,
'paged' => get_query_var('paged') ? get_query_var('paged') : 1
);
وبعد الـ loop:
the_posts_pagination(array(
'mid_size' => 2,
'prev_text' => __('« السابق'),
'next_text' => __('التالي »'),
));
نصائح لتحسين SEO في الـ Loop
- استخدم
<h2>
أو<h3>
للعناوين - ضيف alt text للصور المصغرة
- اربط المقالات بروابط دائمة صديقة للسيو
- عرض excerpt مش كامل المقال لتقليل التكرار
- استخدم
noindex
لو صفحة الأرشيف مش مهمة لمحركات البحث
الأسئلة الشائعة
هل لازم أستخدم WP_Query؟
مش لازم، لكن لو محتاج تحكم في عدد النتائج، الترتيب، النوع… يبقى هو الأفضل.
الفرق بين WP_Query و query_posts؟
WP_Query
هو الطريقة الصحيحة. query_posts
ممكن تخرب الكويري الأساسي وتسبب مشاكل.
ينفع أستخدم loop مخصص في أي مكان؟
أيوه، في أي قالب فرعي أو صفحة مخصصة أو حتى داخل shortcode.
ملخص سريع
- Loop هو الأساس في عرض أي محتوى في ووردبريس.
- عندك الـ loop الافتراضي، لكن تقدر تعمل loop مخصص باستخدام WP_Query.
- تقدر تحدد نوع المقالات، عددها، ترتيبها، تصنيفها.
- pagination مهمة جدًا لتجربة المستخدم.
- تحسين SEO جوه loop يخلي مقالاتك تتصدر بسهولة.
نظرة إيجابية عن استخدام الـ Loop
ميزة ووردبريس القوية هي مرونته، والـ Loop من أهم الحاجات اللي بتخليك تتحكم في كل حاجة في طريقة عرض المحتوى.
تخيل إنك تقدر تبني صفحة خدمات، مدونة، أرشيف، أو حتى معرض صور، كله من خلال loop بسيط!
وبالتالي، إتقانك للـ WP_Query والـ Loop بيخليك محترف تطوير قوالب بكل ثقة.