مقدمة عن الحلقة في ووردبريس The Loop

الحلقة The Loop قي ووردبريسلكي نتعرف على مفهوم الحلقة في الووردبريس بصورة مبسطة سنستخدم طريقتنا المعهودة وهي الإشارة الى السبب أو الحوجة التي أدت الى وجودها وبعد ذلك سنقوم بإستعراض أمثلة عملية حتى لا يكون الشرح مملا لهذا المفهوم البسيط والمهم في نفس الوقت.

لكن قبل ذلك دعنا نلقي نظرة على مفهوم دوال القالب Template tags والتي سنستخدمها اثناء شرحنا للحلقة ولأهميتها كذلك في تطوير قوالب الووردبريس.

 

دوال (أو وسوم) القالب Template Tags

من أهم الأشياء لمصمم أو مبرمج الووردبريس هي معرفة طريقة الجصول على البيانات الخاصة بالمقالات -والصفحات الى غيرها من المحتويات- من قاعدة البيانات وعرضها في المكان الذي يريده في قالب الووردبريس (او إضافة الووردبريس). ولحسن الحظ لن تضطر للتعامل مباشرة مع قاعدة بيانات الووردبريس بل يمكنك إستخدام دوال جاهزة يوفرها لك الووردبريس لعرض المحتويات التي تريدها. فمثلا لعرض محتويات المقال ستسخدم الدالة the_content  ولعرض عنوان المقال ستستخدم الدالة the_title  الى غيرها من الدوال الجاهزة التي يوفرها الووردبريس والتي تستطيع من خلالها عرض البيانات في قالبك ولذلك تسمى دوال (او وسوم) القالب Template Tags. ويمكنك الإطلاع على بقية دوال القالب التي يوفرها لك الووردبريس يمكنك مراجعة الوثائق الرسمية للووردبريس.

 

تعريف الحلقة في ووردبريس:

دعنا في الأول نرى السبب الذي سيدفعك لإستخدام الحلقة في ووردبريس. تخيل معي أنك تطور في الصفحة الرئيسية لقالب ووردبريس لمجلة تقنية وتريد ان تعرض في هذه الصفحة أخر 10 مقالات بصورة معينة حيث تريد ان يظهر عنوان كل مقالة وتاريخ نشرها وكذلك نص مختصر من المقالة (كما في الصفحة الرئيسية لموقع ووردبريس عربي ^^) بالطبع ستستخدم دوال القالب the_title  و the_date  و the_excerpt  لعرض العنوان والتاريخ والمختصر على التوالي، وستستخدم هذه الدوال في داخل وسوم واكواد HTML الخاصة بقالبك. لكن هل ستكرر هذه الأكواد لكل هذه ال10 مقالات؟ بالطبع لا وإلا سيكون ذلك مملا جدا وهذا ما يدعو الى إستخدام الحلقة في ووردبريس حيث تمكنك من كتابة الكود مرة واحدة وستتولى الحلقة مهمة تكرار الكود لجميع المقالات التي إخترتها. إذن يمكننا تعريف الحلقة كالأتي:

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

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

مثال للحلقة الأساسية في ووردبريس:

<?php if ( have_posts() ) : ?>
<?php /* Start the Loop */ ?>
     <?php while ( have_posts() ) : the_post(); ?>
           <h2 class="entry-title"><a href="<?php  the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
           <div class="entry-meta">
                <?php the_date(); ?>
           </div><!-- .entry-meta -->
           <div class="entry-summary">
                <?php the_excerpt(); ?>
           </div><!-- .entry-summary -->
     <?php endwhile;
		 endif; ?>

في السطر الأول قمنا بإستخدام الدالة have_post  للتأكد من أن هنالك مقالات وفي حالة ان هنالك مقالات سينفذ الكود الى يلي عبارة الif الى ان يصل الى الجملة endif .
لاحظ ان اسلوب إستخدام النقطتين بعد الif مكافئ لإستخدام الأقواس وهي الطريقة التي ربما تكون متعودا عليها.. أي يمكننا ان نعيد كتابة الكود اعلاه كالاتي

<?php if ( have_posts() ) { ?>
     <?php /* Start the Loop */ ?>
     <?php while ( have_posts() ) {
                the_post(); ?>
                <h2 class="entry-title"><a href="<?php the_permalink();?>" rel="bookmark"><?php the_title(); ?></a></h2>
                <div class="entry-meta">
                     <?php the_date(); ?>
                </div><!-- .entry-meta -->
                <div class="entry-summary">
                     <?php the_excerpt(); ?>
                </div><!-- .entry-summary -->
     <?php
          }
    } 
?>
  • بعد أن تأكدنا من أن هنالك مقالات،، سنبدأ بتنفيذ الحلقة The Loop وهي كما تلاحظ حلقة while عادية نستخدم في داخلها الدالة have_post  مرة أخرى. أي أن تنفيذ الحلقة سيستمر طالما هنالك مقالات وهذا يعني ان الكود التالي (داخل الحلقة) سينفذ لكل المقالات الموجودة.
  • بعد ذلك قمنا بمناداة الدالة the_post وهي المسئولة عن إعداد الحلقة بمعنى انها تعد الحلقة لإسترجاع بيانات المقال التالي …أي انها في المرة الاولى ستضبط الحلقة لتكون البيانات المسترجعة من الاكواد التي داخل الحلقة خاصة بالمقال الاول، وفي الدورة الثانية للحلقة سترجع البيانات الخاصة بالمقال الثاني وهكذا الى ان نصل الى المقال الاخير.
  • لاحظ ان هذه الدالة لا تستقبل ولا ترجع اي معاملات هي فقط مسئولة عن ضبط عداد الحلقة (قمنا بتبسيط شرح هذه الدالة وربما نعود لها بشئ من التفصيل لاحقا ان شاء الله).
  • بقية الكود يفعل بالضبط ما ذكرنا اننا نريد تطبيقه اي انه يقوم بطباعة عنوان المقال وكذلك التاريخ ومختصر المقال لكل المقالات الموجودة بإستخدام دوال القالب التي يوفرها الووردبريس.
  • لاحظ اننا اضفنا اكواد HTML التي نحتاج لها وبداخلها اضفنا دوال القالب المسئولة عن جلب المحتويات.
  • بهذه الطريقة سنجلب البيانات التي نريدها لجميع المقالات الموجودة وهذه بالضبط مهمة الحلفة.

 

 

مراجعة لما سبق:

تعرفنا في هذا الدرس على

  • تعريف اساسي لدوال القالب Template Tags والتي قلنا انها دوال يوفرها الووردبريس تسهل لنا مهمة جلب البيانات التي نريدها وتستخدم داخل الحلقة.
  • تعريف اساسي لمفهوم الحلقة مع تناول مثال بسيط يشرح اساسيات الحلقة.
  • تعرفنا على دالة have_post  التي تتأكد من وجود مقالات وترجع true في حالة وجودها وfalse في الحالة الاخرى
  • تعرفنا على الدالة the_post  المسئولة من زيادة عداد الحلقة (لاحظ انه عندما تصل هذه الدالة الى المقال الاخير عندها سترجع الدالة have_post  القيمة false لانه لم يعد هنالك مقالات اخرى)

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

  • التحكم في عدد المقالات المعروضة أو عرض مقالات من تصنيف او وسم او تاريخ معين وعموما التحكم في ما يسمى بمعاملات الحلقة لترجع لنا المقالات التي نريدها بالضبط.
  • إستخدام أكثر من حلقة (مثلا واحدة لتصنبف الاخبار والاخرى لتصنيف التقارير وهكذا)
  • انواع الحلقات (الحلقة الاساسية والحلقات الاخرى) وعموما طرق إسترجاع البيانات (المقالات وبيانتها) من قاعدة بيانات الووردبريس.
  • الحلقات الخاصة بالمستخدمين والتعليقات.

وهذه الأشياء سنتطرق البها بتفصيل أكبر في الدروس القادمة إن شاء الله.

 

إذا كان لديك تعليق أو سؤال عن هذه المقدمة البسيطة عن الحلقات يمكنك طرحه من خلال التعليقات ولا تنسى مشاركة المقال مع الأصدقاء ^^.

 

المراجع والدوال المستخدمة
The Loop

have_post

the_post

Template Tags

 

 

[mc4wp_form]

مشاركة:

Facebook
Twitter
LinkedIn
WhatsApp

مقالات ذات صلة