منتديات رحيل لكل العرب

منتديات رحيل لكل العرب (https://r7il.com/vb/)
-   قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress (https://r7il.com/vb/f20/)
-   -   القيام بإنشاء حلقة تكرار خاصة بأول مقال (https://r7il.com/vb/t770/)

الفارس 23-02-2019 05:57 PM

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

$args = array(
'post_type' => 'rmcc_blurb',
'posts_per_page' => 1
);
هذه الحلقة ستقوم بعرض فقط أحدث مقال، لا يوجد داعٍ للقيام بهذا إن لم تكن تريد تغيير شيء في طريقة عرض أول مقال. في حالتي هذه أريد عرض المقتطفات والمحتوى. كما أريد أيضًا إضافة بعض التنسيقات للنسق كي أجعل الصورة البارزة والمقتطفات يظهران المحتوى.
إليكم النسخة الجديدة من الكود للحلقة التي ستعرض المقال الأول فقط:

<article id="post-<?php the_ID(); ?>" <?php post_class( 'book' ); ?>>

<div class="left one-third">

<?php if ( has_post_thumbnail() ) { ?>

<a href="<?php the_permalink(); ?>">

<?php the_post_thumbnail( 'medium', array(
'class' => 'left',
'alt' => get_the_title()
) );
?>

</a>

<?php }?>

</div>

<div class="right two-thirds book-excerpt">

<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>

<?php the_excerpt(); ?>

</div>

<div class="clear">
<?php the_content(); ?>
</div>

</article>
ستلاحظ أن هناك كودًا إضافيًّا للمحتوى، وأنّني قد أضفت أيضًا عنصر div لتنسيق النسق، طبعًا أذكّرك أنّني استخدم ملف التنسيق الموجود مسبقًا في قالبي. إليك كيف يظهر أول مقال في صفحتي الآن:كل شيء يبدو جيدًّا. لابدّ أنّك قد انتبهت أنّني قد قمت بنزع الزر الذي يأخذك لصفحة قراءة الكتاب، السبب في ذلك يعود إلى كون محتوى المقال ظاهر الآن ولكنّني قمت بتعويض ذلك إلى زر لشراء الكتاب الذي أخذناه من محتوى المقال.

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

$args = array(
'post_type' => 'rmcc_blurb',
'offset' => 1
);
الآن عندما أقوم بتحديث الصفحة ستجد أنّ أوّل مقالٍ لم يعد يعرض مرّتين.ذلك جيّد! الآن وقد أكملت هذا الجزء، أكون قد أنشأت صفحة خاصة تحتوي على حلقتي تكرار إحداهما تقوم بعرض محتوى إضافي لأول مقال.

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

إضافة استعلام إضافي لملف نموذجك باستخدام WP_Query.
في ملف الدوال الخاص بقالبك (functions.php) استخدم pre_get_posts لتعديل حلقة التكرار القياسية لهذا النوع من الملفات لكي تقوم بتجاوز المقال الاول

هديل الحرف 26-07-2019 03:25 PM

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


الساعة الآن 03:42 PM

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2010, Crawlability, Inc. TranZ By Almuhajir

Security team