البرمجة

تخصيص عرض المقال الأول بووردبريس

كيف تستخدم حلقة التكرار الخاصة بووردبريس لتنسيق أوّل مقال بطريقة مختلفة

في بنية نظام إدارة المحتوى ووردبريس (WordPress)، تعتبر “حلقة التكرار” (The Loop) جوهر عرض المحتوى. هي الآلية التي تسمح بعرض المقالات والتدوينات والصفحات بالطريقة المناسبة، حيث تمرّ الحلقة عبر قاعدة البيانات وتسترجع المحتوى وفقًا للمعايير التي يتم تحديدها مسبقًا ضمن ملفات القالب. ومن الممارسات الشائعة والفعالة تخصيص طريقة عرض المقال الأول في صفحة الأرشيف أو الصفحة الرئيسية بشكل مختلف عن بقية المقالات، لأسباب تتعلق بجذب الانتباه، أو تسليط الضوء على أهم مقال، أو عرض مقالة مميزة بتنسيق بصري خاص.

يهدف هذا المقال إلى تقديم شرح مفصّل، عملي، وتقني حول كيفية استخدام حلقة التكرار لتنسيق أوّل مقال بطريقة مختلفة في ووردبريس، مع الالتزام بجميع معايير تحسين محركات البحث (SEO) وضمان توافق التصميم مع الأداء والوظيفة.


فهم بنية حلقة التكرار في ووردبريس

في جوهر عمل أي قالب ووردبريس، تُكتب حلقة التكرار باستخدام بنية while ( have_posts() ) : the_post();، وهي التي تقوم بجلب التدوينات من قاعدة البيانات الواحدة تلو الأخرى. هذا يعني أنه يمكن الاستفادة من ترتيب جلب التدوينات، حيث يتم عادة جلب أحدث مقال أولًا.

المثال الأساسي لحلقة التكرار:

php
if ( have_posts() ) : ?> while ( have_posts() ) : the_post(); ?>

the_title(); ?>

the_excerpt(); ?>
endwhile; ?> endif; ?>

لكن لتمييز المقال الأول، لا بد من إدخال متغير تحكّم يسمح بمعرفة رقم التكرار الحالي داخل الحلقة.


طريقة تمييز المقال الأول داخل حلقة التكرار

لتمييز أول مقال في حلقة التكرار، يمكن استخدام عدّاد يبدأ من الصفر أو الواحد ويزيد مع كل تكرار. ثم يتم تطبيق شرط برمجي يسمح بعرض تنسيق معين للمقال الأول، وتنسيق آخر للمقالات التالية.

مثال عملي:

php
if ( have_posts() ) : ?> $i = 0; ?> while ( have_posts() ) : the_post(); ?> if ( $i == 0 ) : ?>
class="first-post"> <h1>php the_title(); ?>h1> <div class="featured-image">php the_post_thumbnail('large'); ?>div> <div class="content">php the_excerpt(); ?>div> div> php else : ?> <div class="regular-post"> <h2>php the_title(); ?>h2> <div>php the_excerpt(); ?>div> div> php endif; ?> php $i++; ?> php endwhile; ?> php endif; ?>

في هذا المثال، المقال الأول يتم عرضه مع صورة بارزة بحجم كبير وترويسة أكبر (h1)، بينما بقية المقالات تُعرض بتنسيق أكثر تقليدية.


أهمية تنسيق المقال الأول بطريقة مختلفة

تنسيق أول مقال بطريقة مميزة يخدم عدة أهداف، منها:

  • تحسين تجربة المستخدم: أول محتوى في الصفحة يجب أن يكون جذابًا بصريًا ومعلوماتيًا.

  • تحسين السيو (SEO): ترويسة

    لمقال مميز قد تعزز من التركيز على الكلمات المفتاحية.

  • تعزيز التفاعل: مقالة مصممة بطريقة لافتة تزيد احتمالية نقر الزائر عليها.

  • تقنيات التصميم الحديثة: في التصميمات الحديثة (مثل تصميمات المجلات)، يكون للمقال الأول حيز بصري أكبر أو تصميم شبكي مختلف.


دمج الحلقات المخصصة (Custom Loops)

في بعض الحالات، قد لا يرغب المطور في الاعتماد على حلقة التكرار الافتراضية لووردبريس فقط، بل إنشاء حلقة مخصصة باستخدام WP_Query مع استثناء المقال الأول من حلقة التكرار الثانية.

مثال عملي باستخدام حلقتين

الخطوة 1: عرض أول مقال فقط

php
$args = array( 'posts_per_page' => 1 ); $first_post = new WP_Query($args); if ( $first_post->have_posts() ) : while ( $first_post->have_posts() ) : $first_post->the_post(); ?>
class="first-post"> <h1>php the_title(); ?>h1> <div class="featured-image">php the_post_thumbnail('large'); ?>div> <div class="excerpt">php the_excerpt(); ?>div> div> php endwhile; endif; wp_reset_postdata(); ?>

الخطوة 2: عرض بقية المقالات بدءًا من الثاني

php
$args = array( 'posts_per_page' => 9, 'offset' => 1 ); $other_posts = new WP_Query($args); if ( $other_posts->have_posts() ) : while ( $other_posts->have_posts() ) : $other_posts->the_post(); ?>
class="regular-post"> <h2>php the_title(); ?>h2> <div>php the_excerpt(); ?>div> div> php endwhile; endif; wp_reset_postdata(); ?>

هذا الأسلوب يتيح تحكمًا كاملاً في المقال الأول وبقية المقالات، مع القدرة على إضافة أنماط CSS وتصاميم مختلفة لكل منها.


الاعتبارات المتعلقة بـ CSS وتصميم المقال الأول

تنسيق بصري للمقال الأول

css
.first-post { background-color: #f5f5f5; padding: 20px; margin-bottom: 30px; border-radius: 8px; } .first-post h1 { font-size: 2.5em; color: #333; } .first-post .featured-image img { width: 100%; height: auto; border-radius: 5px; }

تنسيق للمقالات الأخرى

css
.regular-post { margin-bottom: 20px; } .regular-post h2 { font-size: 1.5em; color: #444; }

تضمين الحقول المخصصة لتغيير التنسيق حسب رغبة المحرر

يمكن دمج الحقول المخصصة (Custom Fields) لتحديد ما إذا كان يجب عرض المقال الأول بطريقة مختلفة أو لا، مما يضيف مرونة في التحكم دون الحاجة لتعديل الكود كل مرة.

مثال باستخدام ACF (Advanced Custom Fields):

  1. أنشئ حقل مخصص باسم highlight_this_post.

  2. في الحلقة، تحقق من القيمة:

php
if ( get_field('highlight_this_post') ) : ?>
class="first-post"> <h1>php the_title(); ?>h1> <div class="excerpt">php the_excerpt(); ?>div> div> php else : ?> <div class="regular-post"> <h2>php the_title(); ?>h2> <div>php the_excerpt(); ?>div> div> php endif; ?>

الاعتبارات التقنية والأدائية

عند تطبيق هذا النوع من التخصيص، يجب الانتباه إلى ما يلي:

  • الأداء: استخدم wp_reset_postdata() بعد كل حلقة مخصصة لتجنب تعارضات في استدعاء المقالات.

  • التوافق مع إضافات SEO: حافظ على توازن استخدام الترويسات (h1، h2، h3) وتجنّب التكرار.

  • التحكم في استجابة التصميم (Responsive Design): تأكد من أن التنسيق المختلف يعمل جيدًا على جميع أحجام الشاشات.


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

الطريقة طريقة التنفيذ التحكم في المظهر التحكم في المقالات التالية الأداء
متغير داخل حلقة واحدة استخدام عداد $i متوسط ضمن نفس الحلقة ممتاز
حلقتان مخصصتان WP_Query مع offset عالي جدًا كامل جيد مع wp_reset_postdata
حقول مخصصة ACF أو get_post_meta() مرن حسب الإدخال حسب القيمة المدخلة ممتاز
باستخدام فلاتر القالب pre_get_posts + template-parts متقدم جدًا عالي يتطلب خبرة متقدمة

خلاصة تطبيقية

يمكن القول إن تخصيص عرض المقال الأول في ووردبريس يمنح المطور والمصمم أدوات قوية لابتكار واجهات جذابة ومؤثرة بصريًا. عبر استخدام بنية حلقات التكرار بذكاء، ودمجها مع إمكانيات مثل الحقول المخصصة أو استعلامات مخصصة (WP_Query)، يمكن التحكم في كيفية ظهور المحتوى على مستوى دقيق جدًا، ما ينعكس مباشرة على تجربة المستخدم وسلوك الزائر داخل الموقع.

كما أن الامتثال لمبادئ السيو، والتوازن بين الأداء والجمالية، والتدرج المنطقي في استخدام الترويسات، يجعل هذه الاستراتيجية أكثر من مجرد تحسين بصري، بل أداة تسويقية وتفاعلية بامتياز.


المراجع:

  1. WordPress Developer Handbook – The Loop

  2. Advanced Custom Fields Documentation