ملف single.php


دلوقتي جايين نشرح واحد من أهم ملفات القالب: ملف عرض المقالة الفردية
يلا نبدأ بدرس:

1. مقدمة: إيه هو single.php؟

ملف single.php هو المسئول عن عرض مقال واحد فقط
يعني لما الزائر يضغط على عنوان مقالة من المدونة، الملف ده هو اللي بيظهر له محتوى المقال بالكامل.

2. إمتى بيتستخدم؟

  • لما حد يدخل على رابط مقالة مباشرة
  • ووردبريس تلقائيًا بيستخدم single.php لو موجود
  • لو مش موجود، بيرجع يستخدم index.php كبديل

3. الفرق بينه وبين index.php

index.phpsingle.php
بيعرض لستة مقالاتبيعرض مقالة واحدة فقط
فيه الحلقة (Loop) بتكرارالحلقة مرة واحدة فقط
مناسب للرئيسية/الأرشيفمخصص لعرض المقال

4. شكل الملف العام

<?php get_header(); ?>

<div class="content-area">
  <main class="site-main">
    <?php
      if ( have_posts() ) :
        while ( have_posts() ) : the_post();
          // المحتوى هنا
        endwhile;
      endif;
    ?>
  </main>
</div>

<?php get_footer(); ?>

5. استدعاء الهيدر والفوتر

نفس أي ملف:

<?php get_header(); ?>
...
<?php get_footer(); ?>

عشان يفضل الشكل العام ثابت في كل الصفحات.

6. الحلقة The Loop للمقالة الواحدة

<?php
  if ( have_posts() ) :
    while ( have_posts() ) : the_post();
      // عرض العنوان والمحتوى
    endwhile;
  endif;
?>

هنا الحلقة بتتعامل مع مقال واحد بس.

7. عرض العنوان والمحتوى

<article class="single-post">
  <h1><?php the_title(); ?></h1>
  <div class="post-meta">
    <span>بواسطة: <?php the_author(); ?></span>
    <span>في: <?php the_date(); ?></span>
  </div>
  <div class="post-content">
    <?php the_content(); ?>
  </div>
</article>

8. عرض بيانات الكاتب والتاريخ

جزء مهم لزيادة الثقة:

<div class="post-meta">
  <span>الكاتب: <?php the_author(); ?></span> | 
  <span>بتاريخ: <?php the_time('j M Y'); ?></span>
</div>

9. عرض الصورة البارزة Featured Image

<?php if ( has_post_thumbnail() ) : ?>
  <div class="featured-image">
    <?php the_post_thumbnail('large'); ?>
  </div>
<?php endif; ?>

بتدي شكل احترافي للمقال.

10. إضافة التاجز والتصنيفات

<div class="post-taxonomy">
  <p>التصنيفات: <?php the_category(', '); ?></p>
  <p>الكلمات المفتاحية: <?php the_tags(); ?></p>
</div>

دي بتساعد في تحسين تجربة الزائر والسيو.

11. كود التعليقات

<?php
  if ( comments_open() || get_comments_number() ) {
    comments_template();
  }
?>

لو التعليقات مفعلة، هيظهر النموذج والتعليقات الموجودة.

12. تحسين SEO للمقال

✅ استخدم عناوين H2 و H3 جوه المحتوى
✅ أضف الميتا داتا زي الكاتب والتاريخ
✅ اربط المقال بمقالات تانية أو صفحات
✅ استخدم الصورة البارزة بحجم مناسب وAlt Text

13. إضافة مقالات مشابهة Related Posts

ممكن تضيفها بكود بسيط:

<?php
  $related = new WP_Query([
    'category__in' => wp_get_post_categories(get_the_ID()),
    'posts_per_page' => 3,
    'post__not_in' => [get_the_ID()]
  ]);

  if ( $related->have_posts() ) :
    echo '<h3>مقالات مشابهة:</h3><ul>';
    while ( $related->have_posts() ) : $related->the_post();
      echo '<li><a href="' . get_permalink() . '">' . get_the_title() . '</a></li>';
    endwhile;
    echo '</ul>';
    wp_reset_postdata();
  endif;
?>

14. ممارسات احترافية

  • استخدم get_template_part() لتنظيم الكود
  • فعل Lazy Load للصور
  • خلي تصميم المقال مريح للعين (line height + spacing)
  • خلي فيه زر مشاركة على السوشيال ميديا

15. مراجعة سريعة

  • single.php لعرض مقالة واحدة فقط
  • بيحتوي على الحلقة The Loop لمقال واحد
  • فيه عنوان، محتوى، صورة، ميتا، تصنيفات، تعليقات
  • ممكن تضيف مقالات مشابهة
  • ضروري لتحسين السيو وتجربة المستخدم

✅ الأسئلة الشائعة

س: لو معنديش single.php؟
ج: ووردبريس هيستخدم index.php، بس يفضل يكون فيه ملف single.php مخصص.

س: إزاي أضيف التعليقات؟
ج: بكود comments_template(); داخل الحلقة.

س: ينفع أعمل تصميم مختلف لكل مقالة؟
ج: أيوه، باستخدام single-posttype.php أو template-parts.

🔚 نهاية الدرس: “المقال اللي يخلّي الزائر يكمل التصفح”

لو عايز الزائر يتفاعل مع المحتوى، يرجع يزورك تاني، يشارك مقالاتك، ويثق في موقعك…
ابدأ من هنا.
من أول مقالة فردية، وملف single.php هو اللي هيخلي الزائر يحس إن شغلك احترافي ومريح 👌