حلقة WordPress: ما هي وما تحتاج إلى معرفته عنها

نشرت: 2023-10-25

إذا كنت مطورًا لموضوعات WordPress، أو مبرمجًا، أو مجرد متحمس بشكل عام ومتحمس لمعرفة ما هي حلقة WordPress، فهذه المقالة مخصصة لك! بدون مزيد من اللغط، دعونا نبدأ بالأساسيات: ما هي الحلقة؟

حلقة WordPress عبارة عن كود PHP يعرض منشورات WordPress أو ببساطة؛ يتم استخدامه في مواضيع مختلفة لعرض المنشورات على أي صفحة ويب معينة. ليس فقط لأنه يعمل على معظم الصفحات التي تراها، ولكنه يسمح لك أيضًا بتعديلها وتخصيصها حسب رغبتك.

يمكن استخدام حلقات موقع الويب هذه لسرد المنشورات حسب عدد التعليقات وإظهار المنشورات التي تحتوي على صور وما إلى ذلك.

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

تعمل علامات القالب هذه فقط داخل حلقة WordPress الافتراضية، ويتم استخدامها لتنسيق بيانات النشر وترتيبها ونشرها.

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

حلقة صفحة ووردبريس للمبتدئين

كما ذكرنا سابقًا، فإن حلقة النشر عبارة عن رمز يُخرج جميع المعلومات التي يحتوي عليها WordPress حول منشور أو منشورات. فهو يعمل في الخلفية من خلال كل منشور، ويجد قاعدة البيانات واحدة تلو الأخرى، مما يسمح له بتوفير معلومات حول جميع المنشورات التي تم العثور عليها.

فيما يلي مثال لكيفية عمل حلقة WordPress عبر المنشورات:

  1. تبدأ الحلقة،
  2. اتخاذ إجراء مع كل منشور أو صفحة يتم العثور عليها،
  3. إغلاق حلقة.

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

  1. تحديد ما نبحث عنه،
  2. بدء الحلقة،
  3. اتخاذ إجراء مع كل منشور أو صفحة يتم العثور عليها،
  4. إغلاق حلقة.

إذا كانت لديك خبرة في كود PHP، فقد تكون على دراية بوظيفة "while" التي يتم استخدامها في الحلقات للتشغيل من خلال استعلام قاعدة البيانات وعرض المعلومات ديناميكيًا دون الحاجة إلى إدخال كل صف في قاعدة البيانات يدويًا.

يعمل WordPress while Loop بنفس الطريقة.

مثال على حلقة WordPress القياسية

فيما يلي مثال لحلقة WordPress القياسية التي يمكن استخدامها في أي صفحة.

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
// Post display here
<?php endwhile ?>
<?php else : ?>
// Content if there are no posts to show
<?php endif ?>

ألقِ نظرة على وظائف has_posts() و the_post() . يحدد الأول ما إذا كان هناك أي منشورات سيتم عرضها، بينما يقوم الثاني بإعداد البيانات والنقاط الداخلية التي تساعد وظيفة has_posts() .

إذا لم يكن هناك شيء لإظهاره، فيجب أن تعرض الوظيفة رسالة لإعلام المستخدمين.

إذا كانت هناك منشورات نبحث عنها، فستعرضها الحلقة واحدة تلو الأخرى.

هنا، احصل على مجموعة من التعليمات البرمجية التي ستعرض المنشورات بالفعل، فهي علينا!

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post() ?>
<div <?php post_class() ?>>
<h2><a href='<?php the_permalink() ?>'><?php the_title() ?></a></h2>
<div class='post-excerpt'>
<?php the_excerpt() ?>
</div>
<div class='post-meta'>
<time><?php the_time( 'Ymd' ) ?></time>
<?php if ( has_category() ) : ?>
<span class='post-categories'><?php the_category( ', ' ) ?></span>
<?php endif ?>
</div>
</div>
<?php endwhile ?>
<?php else : ?>
<h2>There are no posts here</h2>
<p>Do you want to go back to the <a href='<?php echo site_url() ?>'>home page?
<?php endif ?>

يتم تحديد المحتوى المعروض هنا من خلال الاستعلام الذي تحدثنا عنه بالفعل، وتعتمد كيفية عرض هذا المحتوى على الحلقة. هذا القدر من التخصيص رائع وهو ما يجعل WordPress متميزًا.

عمل عظيم! الآن أنت تعرف ما هي حلقة النشر!

استخدام الكود لتغيير الاستعلام الرئيسي

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

علينا أن ننظر إلى الخطافات إذا أردنا تعديل الوظائف الأساسية. تمكننا الخطافات من تغيير طول النص، وتغيير شاشة تسجيل الدخول، وإعادة صياغة رسائل الخطأ، وتغيير أنواع المنشورات المخصصة، وغير ذلك الكثير.

add_action( 'pre_get_posts', 'my_exclude_category' );
function my_exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-92' );
}
}

لاحظ أننا نستخدم الخطاف pre_get_post لتعديل معلمة الاستعلام الرئيسي قبل تشغيله. الكود أعلاه يفعل نفس الشيء الذي كان عليه من قبل، ولكن هذه المرة يستبعد الفئة 92 من صفحتنا الرئيسية. وبالتالي، تم تعديل الاستعلام الرئيسي

ألقِ نظرة على الدالتين is_home() و is_main_query() . إنهم هنا للتأكد من أن الاستعلام قد تم تعديله فقط على الصفحة الرئيسية وما إذا كان هو الاستعلام الرئيسي.

إليك رمزًا آخر يمكن أن يكون مفيدًا في حلقة مدونة WordPress.

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

ويمكن القيام بذلك عن طريق إضافة رمز مثل هذا:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
$query->set( 'author', '-23' );
}

باستخدام هذه الوظيفة الشرطية، يمكنك إزالة مشاركة المؤلف من موقع الويب الخاص بك ومن الواجهة الخلفية لديك. يمكنك العثور على جميع العلامات الشرطية في WordPress Codex. إليك ما يجب أن يبدو عليه الكود الأخير في النهاية:

add_action( 'pre_get_posts', 'my_exclude_author' );
function my_exclude_author( $query ) {
if( !is_admin() ) {
$query->set( 'author', '-23' );
}
}

الأسئلة الشائعة حول حلقة WordPress

ما هي حلقة WordPress، على أية حال؟

يا رجل، هذا يعيدني! لذا، فإن حلقة WordPress ، في جوهرها، هي محرك WP الذي يعرض المحتوى من قاعدة البيانات على موقعك.

إنه قلب العديد من قوالب WP ويخبر النظام بالمشاركات أو الصفحات التي سيتم عرضها وبأي ترتيب. فكر في الأمر باعتباره DJ لحفلة WordPress الخاصة بك، حيث يقوم باختيار الألحان (أو المنشورات) المناسبة لضيوفك.

لماذا تعتبر الحلقة ضرورية جدًا في تطوير الموضوع؟

آه، تطوير الموضوع ، لغز ممتع في كل مرة! تشبه الحلقة العمود الفقري لموضوع WordPress. وبدون ذلك، سيكون موضوعك عبارة عن فيلم صامت بدون حبكة.

فهو يجلب المحتوى بناءً على معلمات WP_Query ، ومن خلال علامات القالب ، يمكنك تخصيص المحتوى وكيفية عرضه. هل سمعت يومًا عن موضوعات ذات أنماط خاصة لمشاركات معينة؟ نعم، هذا هو سحر الحلقة في العمل.

كيف يرتبط WP_Query بالحلقة؟

حسنا، الغوص معي هنا. WP_Query هي الفئة التي تحدد المحتوى وتجلبه. ثم تمر الحلقة عبر النتائج التي يعودها WP_Query.

فكر في WP_Query باعتباره الطاهي الذي يقوم بإعداد الأطباق، بينما تقدم الحلقة هذه الأطباق لضيوفك. ومع أنواع المنشورات والتصنيفات المخصصة ، يستطيع هذا الطاهي تحضير مجموعة رائعة من الأطباق!

ما الفرق بين has_posts() و the_post()؟

سؤال كلاسيكي! يتحقق has_posts() من وجود منشورات متبقية في الاستعلام للتكرار. إنه مثل السؤال: "مرحبًا، هل هناك المزيد من الأغاني في قائمة التشغيل هذه؟"

وفي الوقت نفسه، يقوم the_post() بإعداد المنشور الحالي، لذا فأنت جاهز لعرض تفاصيله. إنه يشبه ضرب اللعب على المسار التالي. كلاهما حاسم للغاية في رقصة الحلقة.

كيف يمكنني تخصيص المشاركات التي تظهر في الحلقة؟

آه، قوة التخصيص! لتغيير المنشورات التي تظهر، يمكنك تعديل معلمات WP_Query أو استخدام مرشح pre_get_posts .

سواء أكان ذلك عبارة عن حلقة فئة ، أو حلقة علامة ، أو أي استعلام مخصص آخر، فهناك الكثير مما يمكنك فعله. هل تريد إظهار المشاركات من فئة معينة؟ أو ربما فرزها حسب حقل مخصص ؟ العالم هو المحار الخاص بك!

هل يمكنني الحصول على حلقات متعددة في صفحة واحدة؟

أتراهن! تعد الحلقات المتعددة أمرًا ضروريًا، خاصة عندما تريد أقسامًا مختلفة، مثل قائمة المقالات الرئيسية متبوعة بشريط جانبي يحتوي على المنشورات الحديثة.

تحتاج فقط إلى إعادة تعيين الحلقة باستخدام wp_reset_postdata() بعد كل WP_Query مخصص. ومع أجزاء القالب ، يصبح الأمر أكثر تنظيمًا. فقط تذكر ألا تبالغ في ذلك - لا أحد يحب الحفلة المزدحمة!

ما هي العلامات الشرطية في سياق الحلقة؟

لذلك، العلامات الشرطية هي حراس البوابة للحلقة. إنها تتيح لك التحكم في مكان وزمان عرض محتوى معين.

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

كيف أقوم بإضافة ترقيم الصفحات إلى الحلقة؟

آه، ترقيم الصفحات، فن عدم إرباك زوار موقعك! باستخدام وظائف ترقيم الصفحات ، يمكنك تقسيم مشاركاتك إلى صفحات متعددة.

بدلاً من عرض قائمة لا تنتهي من المشاركات، امنح المستخدمين استراحة. وظائف مثل paginate_links() أو الروابط الكلاسيكية "التالية والسابقة" تساعد هنا. لأنه، لنكن واقعيين، لا أحد يريد التمرير إلى الأبد.

لماذا أحتاج إلى تعديل الاستعلام الرئيسي؟

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

باستخدام الإجراء pre_get_posts ، يمكنك تعديل الاستعلام الرئيسي دون كتابة استعلام جديد. إنه مثل ضبط الإعدادات الرئيسية على جهاز الاستريو الخاص بك للحصول على الصوت المثالي.

ماذا يحدث إذا كانت هناك مشكلة في حلقتي؟

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

وإذا فشل كل شيء آخر، فإن WordPress Codex ومنتديات المجتمع هي منجم ذهب لاستكشاف الأخطاء وإصلاحها. تذكر أن كل مطور يواجه حلقة خلل مرة واحدة على الأقل. لقد حصلت على هذا!

إنهاء الأفكار حول حلقة WordPress

يعد استخدام حلقة WordPress طريقة رائعة لتخصيص منشوراتك أو صفحاتك أو ببساطة – موقع الويب الخاص بك. تتطلب الحلقة أن يكون لديك فهم أساسي لكيفية عمل WordPress ومنطق الكود.

إلا إذا كنت تريد إجراء اختبار سريع، فإننا لا نوصي باستخدام الدالة query_posts() . يمكنك استخدام العديد من الخطافات في حالة احتياجك إلى تعديل الاستعلام الأصلي. كن حذرًا دائمًا عند تغيير رمز حلقة WordPress.

نأمل أن تكون هذه المقالة بمثابة خطوة أولى جيدة نحو إتقان حلقة WordPress الخاصة بك!

إذا استمتعت بهذه المقالة حول حلقة WordPress، فيجب عليك أيضًا قراءة ما يلي:

  • خطأ 504 في ووردبريس: كيفية إصلاحه
  • 12 نصيحة لإنشاء مكون إضافي أو سمة WordPress Premium ناجحة
  • كيفية الاستفادة من التخزين المؤقت للمتصفح في ووردبريس؟ الخطوات لمتابعة