كيفية إدراج محتوى آخر في مكررات الأكسجين والمنشورات السهلة - البرنامج التعليمي الضخم
نشرت: 2022-06-29تعد عناصر مكرر منشئ الأكسجين والمنشورات السهلة طرقًا سريعة وسهلة لعرض قائمة المنشورات.
سيوضح لك هذا الدليل طرقًا مختلفة لإدراج "عناصر أخرى" في قائمة لأي سبب تريده.
لتجنب الالتباس ، سأستخدم "عنصر (عناصر) أخرى" للعناصر التي لم يتم الاستعلام عنها بواسطة استعلام Repeater / Easy Post الأصلي
لماذا ا؟
تعرض عناصر المكرر / المشاركات السهلة قائمة بالمشاركات. هذه القائمة مقيدة بالمعلمات المعينة في الاستعلام المستخدم لجلب المشاركات.
يمكنك تنسيق مظهر كل عنصر وتخطيط القائمة ، وهذا كل شيء. في بعض الأحيان يكون هذا كل ما تحتاجه ولكن في بعض الأحيان قد ترغب في تغيير القائمة لتشمل عناصر أخرى لم يتم جلبها في الأصل. عناصر أخرى مثل:
- عنصر عبارة للحث على اتخاذ إجراء (مثل رابط "قراءة المزيد" للأرشيف بالكامل) في منتصف القائمة بدلاً من نهاية القائمة
- نص إعلامي يصف العناصر الموجودة داخل القائمة ، ويفصل تدفق المعلومات لإبقائها ممتعة
- بعض العناصر الزخرفية
- قائمة أخرى كاملة داخل القائمة
- لافتة إعلانية أو عنصر ترويجي آخر
دورة بناء الأكسجين - قريباً!
ستنقلك دورة إتقان منشئ الأكسجين من المبتدئين إلى المحترفين - بما في ذلك وحدات ACF و MetaBox و WooCommerce.
كيف؟
سأستخدم بعض الأمثلة أعلاه لتوضيح الطرق المختلفة لإضافة عناصر أخرى إلى القائمة.
الطرق من فائقة البساطة إلى معقدة هي:
- مسج
- باستخدام خطاف
the_posts
- تحرير قوالب PHP (منشورات سهلة)
- باستخدام خطاف
the_posts
مرة أخرى ولكن مع إضافة عناصر غير منشورة مثل المصطلحات (الفئات / التصنيفات)
في الأمثلة الخاصة بي ، سأستخدم نوع المنشور المخصص الوجهات وهي مجرد قائمة بالمدن.
تحفظات
- سيكون العنصر الآخر تابعًا لعنصر Repeater / Easy Post لأنه تم إدراجه بداخله وسيخضع لأية قواعد تخطيط تم تعيينها من الأصل ما لم يتم تجاوزه ، وهو ما لن أفعله في الأمثلة الخاصة بي.
- لن تظهر تغييرات القائمة في محرر Oxygen.
- تصل طريقة Easy Post PHP Template إلى متغير غير موثق يمكن أن يتغير في تحديث Oxygen في المستقبل ولكن ليس من المحتمل.
إضافة عنصر آخر داخل مكرر باستخدام JQuery
سنستخدم JQuery لإدخال عنصر في بعض الفهرس داخل Repeater / Easy Post.
الخطوات
- قم بإنشاء مكرر أو منشور سهل باستخدام استعلام مخصص مع وجهات نوع المنشور. قم بتعيين معرفه على
example-repeater-1
. - العناصر هي عنوان المنشور والصورة المميزة كخلفية.
- في هذا المثال ، استخدمت تخطيط الشبكة وقمت بتعيين العنصر الرابع ليشمل عمودين في الصف. هذا هو المكان الذي سيتم فيه إدراج العنصر الخاص بي.
- العنصر الآخر عبارة عن
div
بارتفاع 100٪ وعرض 100٪ وجعلته شعارًا بسيطًا به زر دعوة لاتخاذ إجراء. قم بتعيين معرفه علىguide-ad-banner
. - أضع العنصر الآخر أسفل المكرر ولكن يمكن أن ينتقل إلى أي مكان لأن البرنامج النصي سينقله.
مسج
أدخل Code Block في صفحتك وأضف ما يلي إلى قسم Javascript ، أو داخل علامات <script>
في قسم PHP / HTML.
jQuery( ( $ ) => { const allRepeaterDivs = $( "#example-repeater-1 > div" ); const insertionIndex = allRepeaterDivs.length > 2 ? 2 : allRepeaterDivs.length - 1 ; allRepeaterDivs.eq(insertionIndex).after($( "#guide-ad-banner" )[ 0 ]); });
لغة الكود: جافا سكريبت ( جافا سكريبت )
هنا شرح سريع للنص.
- بعد تحميل / تجهيز الصفحة ، نحصل على قائمة بجميع
div
s التابعة لـ#example-repeater-1
. هذه هي العناصر الفردية في المكرر. - احسب الفهرس لإدراج هذا العنصر ، من الناحية المثالية أريد إدراجه بعد العنصر الثالث (الفهرس 2 ، تبدأ المؤشرات من 0 هنا) ، ولكن إذا كان عدد العناصر أقل من 2 ، فقم بإدخاله في النهاية. بالطبع ، أنا أعرف بالفعل حجم نتيجتك مسبقًا ، لذا فإن هذا الحساب هو مجرد إجراء احترازي في حالة تغييرها إلى استعلام حيث يتم إرجاع أقل من 3 عناصر.
- أخيرًا ، يقوم بإدراج العنصر الذي يحتوي على id
#guide-ad-banner
بعد العنصر الثالث ، مما يجعل العنصر الآخر الخاص بي هو العنصر الرابع.
نتيجة
في الواجهة الأمامية ، يأخذ العنصر مع id guide-ad-banner
ويدرجه في البقعة الرابعة من المكرر بالمعرف #example-repeater-1
.
إضافة عنصر آخر داخل مكرر باستخدام the_posts
يتيح لك عامل تصفية the_posts
في WordPress الوصول إلى المشاركات التي تم جلبها بواسطة استعلام. المرجعي
يمكننا استخدام هذا الخطاف لإدراج المنشورات الأخرى التي لم يتم تضمينها في الاستعلام الأصلي.
في هذا المثال ، سأقوم بإدخال منشور عادي في نهاية مكرر الذي استخدم استعلامًا عن وجهاتي.
الخطوات
- قم بإنشاء مكرر لنوع المنشور الخاص بالوجهات وقم بتصميم العناصر مع العنوان والصورة المميزة كخلفية div.
- أضف الكتل البرمجية أعلى وأسفل المكرر.
كتل التعليمات البرمجية
أول كتلة رمز
أضف كود PHP هذا إلى Code Block الموجود فوق المكرر.
<?php function b58_add_cta_last ( $posts, $query ) { $cta_post = get_post( 347 ); $posts[] = $cta_post; return $posts; } add_filter( 'the_posts' , 'b58_add_cta_last' , 10 , 2 ); ?>
لغة الكود: HTML ، XML ( xml )
لنستعرض هذا الرمز.
- أستخدم
get_post
للحصول على المنشور برقم 347. هذا هو المنشور الذي أريد إدراجه في نهاية المكرر. - أقوم بإلحاق المنشور السابق بنهاية مصفوفة
$posts
. - إرجاع المصفوفة المعدلة.
- أقوم بإضافة الوظيفة التي تم إنشاؤها مسبقًا إلى ربط مرشح
the_posts
.
الكتلة البرمجية الثانية
أضف PHP التالية إلى Code Block تحت المكرر
<?php remove_filter( 'the_posts' , 'b58_add_cta_last' , 10 , 2 ); ?>
لغة الكود: HTML ، XML ( xml )
يؤدي هذا إلى إزالة الوظيفة المضافة سابقًا حيث يتم استدعاء ربط عامل التصفية the_posts
الذي سيتم استخدامه. إذا لم تتم إزالته ، فسيؤثر ذلك على الاستعلامات الأخرى التي يتم تشغيلها لاحقًا.
نتيجة
تم إلحاق المنشور الذي حصلنا عليه بالمعرف 347 في نهاية المكرر. من الصورة ترى أن هناك قائمة بالوجهات وفي النهاية منشورنا المعتاد. لذلك كان من الممكن أن يكون مقالًا يتحدث عن السفر أو كيفية الحجز أو أي شيء آخر.
إذا أضفت بيانات ديناميكية مثل الحقول المخصصة إلى العناصر المكررة ولم يكن مفتاح التعريف هذا موجودًا في العنصر الآخر ، فسيكون فارغًا في عنصر div هذا. لذلك يجب عليك استخدام شرط للتحقق مما إذا كان مفتاح التعريف موجودًا لتجنب أي مشكلات غريبة في التخطيط.
إضافة قائمة أخرى داخل Easy Posts Element
سيتضمن ذلك تحرير نموذج PHP لعنصر Easy Posts.
في هذا المثال ، سأقوم بإنشاء جزء قابل لإعادة الاستخدام يحتوي على مكرر مع قائمة منشورات ، ثم أدرجه في عنصر Easy Post الذي طلب مجموعة مختلفة من المنشورات. لن أستخدم CPT للوجهات لهذا الغرض.
قم بإنشاء قائمة كجزء قابل لإعادة الاستخدام
- قم بإنشاء جزء جديد قابل لإعادة الاستخدام يحتوي على 3 عناصر رئيسية وعنوان و div للمكرر ونص.
- يقوم المكرر بتشغيل استعلام عن نوع المنشور الافتراضي وفئة الأخبار ، وقمت بتعيين
no_found_rows
= true لتعطيل ترقيم الصفحات. - يشير عنصر النص العلوي فقط إلى "الأخبار العاجلة" والنص السفلي عبارة عن رابط لأرشيف نشر الأخبار.
- أضف كتل التعليمات البرمجية أعلى وأسفل المكرر ، يتعين علينا تغيير استعلام المكرر باستخدام كتل التعليمات البرمجية هذه.
هذا هو هيكل الجزء القابل لإعادة الاستخدام.
كتل التعليمات البرمجية
أول كتلة رمز
أثناء وجود هذا المكرر داخل عنصر Easy Post ، يجب أن يكون استعلامه مستقلاً عن Easy Post. إحدى الطرق التي يمكن أن يؤثر بها عنصر Easy Post على القائمة الداخلية هي عبر ترقيم الصفحات. إذا نقر شخص ما على الصفحة 2 لعنصر Easy Post ، فستقوم القائمة الداخلية افتراضيًا أيضًا بإحضار الصفحة 2. وعلينا منع ذلك.
ستضيف كتلة الكود الأولى فوق المكرر إجراء pre_get_posts
يعيّن وسيطة الاستعلام المقسم إلى صفحات على 1 ، مما يجعلها تُعيد الصفحة الأولى دائمًا.
إذا كان هذا المكرر على صفحة رئيسية ثابتة ، فاستخدم الصفحة = 1 بدلاً من ذلك. (المرجع: وثائق WP_Query)
<?php function b58_set_paged ( $query ) { // use paged if the repeater is on an archive page // or page other than a static home page. $query->set( "paged" , 1 ); // use page if this repeater is on a static home page. // $query->set( "page", 1 ); return $query; } add_action( 'pre_get_posts' , 'b58_set_paged' ); ?>
لغة الكود: HTML ، XML ( xml )
الكتلة البرمجية الثانية
يزيل مقطع التعليمات البرمجية الثاني الإجراء الذي تمت إضافته مسبقًا لمنعه من التأثير على الاستعلامات المستقبلية.
<?php remove_action( 'pre_get_posts' , 'b58_set_paged' ); ?>
لغة الكود: HTML ، XML ( xml )
حتى الآن سيعرض المكرر دائمًا الصفحة الأولى من النتائج.
قم بتدوين معرف قالب الجزء القابل لإعادة الاستخدام هذا ، يمكنك الحصول عليه من شريط العناوين في لوحة معلومات WP.
دورة بناء الأكسجين - قريباً!
ستنقلك دورة إتقان منشئ الأكسجين من المبتدئين إلى المحترفين - بما في ذلك وحدات ACF و MetaBox و WooCommerce.
المنشور السهل
- في الصفحة الفعلية حيث أريد إضافة المنشور السهل ، أقوم بإضافته إلى تلك الصفحة واخترت إعداد الماسونية المسبق.
- أقوم بتغيير الاستعلام إلى مشاركات من فئة أخرى غير الأخبار.
- لقد قمت بتعيين عدد المنشورات لكل صفحة على رقم فردي لأنني سأضيف يدويًا مشاركة إضافية واحدة لجعلها متساوية بحيث تكون الشبكة نظيفة.
نموذج PHP
في لوحة نمط Easy Posts ، انتقل إلى Template PHP. هذا هو المكان الذي يمكنك فيه تحرير القالب المستخدم لكل عنصر في حاوية Easy Post (القالب مكرر.)
ضمن القالب الافتراضي ، الصق ملف php التالي
<?php $current_index = $this ->query->current_post; // Place this element after the 3rd post item, or // the last post if the # of posts is less than 3 // this ensure this element is added even if there // are less than 3 posts on the page. $other_post_index = $this ->query->post_count < 3 ? $this ->query->post_count - 1 : 2 ; if ( $current_index == $other_post_index ) { echo "<div class='oxy-post'>" ; echo do_oxygen_elements( json_decode( get_post_meta( 321 , 'ct_builder_json' , true ), true ) ); echo "</div>" ; } ?>
لغة الكود: HTML ، XML ( xml )
لنستعرض هذا الرمز.
- أولاً ، نحصل على فهرس العنصر المعروض حاليًا وقمنا بتعيينه على
$current_index
. خلف الكواليس ، يقوم Oxygen Builder بالتكرار فوق كل عنصر يتم إرجاعه من مجموعة الاستعلام في عنصر Easy Posts ، ويقوم بتنفيذ الكود داخل القالب لكل منشور داخل القائمة. لدينا طريقة للوصول إلى متغير الاستعلام باستخدام الاستعلام$this->query
وفهرس عنصر المعالجة حاليًا هوcurrent_post
داخل الاستعلام. - أحدد الفهرس الذي يجب أن يُدرج فيه العنصر الآخر. أفعل ذلك عن طريق التحقق من العدد الإجمالي للعناصر التي ستتم معالجتها ، إذا كان هناك أقل من 3 عناصر ، فسأضيف العنصر الآخر باعتباره العنصر الأخير في Easy Post. بخلاف ذلك ، سأضيفه بعد العنصر الثالث (يبدأ الفهرس عند 0) ، مما يجعل العنصر الآخر الخاص بي هو العنصر الرابع في شبكة Easy Post.
- إذا كنا في الفهرس لإضافة عنصرنا ، فأنا أستخدم وظيفة Oxygen المضمنة
do_oxygen_elements
لعرض العنصر القابل لإعادة الاستخدام (معرف القالب 321) ولفه في div مع فئةoxy-post
.
نتيجة
يتم وضع الجزء القابل لإعادة الاستخدام باعتباره العنصر الرابع في شبكة المشاركات السهلة.
قائمة الأجزاء القابلة لإعادة الاستخدام قابلة للتمرير داخل القائمة.
إن الخطاف pre_get_posts
في الجزء القابل لإعادة الاستخدام يجعله يقوم دائمًا بتحميل الصفحة الأولى من المنشورات حتى أتمكن من الانتقال إلى الصفحات الأخرى من Easy Post وتبقى النتائج كما هي.
باستخدام هذه الطريقة ، يمكنك استبدال جزء do_oxygen_elements
من الكود أعلاه وكتابة HTML الخاص بك لإضافة ما تريد داخل عنصر Easy Posts.
تذكر أن العنصر الذي أضفته يجب أن يتوافق مع أي قواعد تحجيم تم تعيينها في فئة أوكسي بوست وإلا فقد يؤدي ذلك إلى التخلص من بقية القائمة.
أدخل عناصر المصطلحات داخل مكرر
تعتمد هذه الطريقة على استخدام the_posts
لإدراج روابط لمصطلحات داخل قائمة منشورات مرتبة حسب شروطها.
لذا تخيل قائمة متكررة مثل:
Blue A ، Blue B ، Blue C ، See all Blues ، Red X ، Red Y ، Red Z ، See all Reds ، إلخ.
مفيد للغاية في موقع التجارة الإلكترونية عندما تريد إدراج عدد قليل من العناصر المميزة ، ثم ربط مصطلح أرشيف.
تتضمن هذه الطريقة الكثير من الخطوات ولكنها واضحة جدًا.
الخطوات
- إعداد الحقول المخصصة
- قم بإنشاء مجموعة من وظائف المساعد
- أضف مكررًا يستعلم عن أنواع المنشورات التي نريدها.
- قم بتعديل قائمة المشاركات التي تم جلبها باستخدام الاستعلام أعلاه باستخدام
the_posts
إعداد الحقول المخصصة
هذه خطوة اختيارية إذا كنت تريد استخدام صورة مميزة مع كائن المصطلح الخاص بك.
في المثال الخاص بي ، أستخدم صورة مميزة كخلفية للعنصر. لا تحتوي المصطلحات افتراضيًا على صورة مميزة ، لذلك أضفت واحدة إلى التصنيف المخصص الخاص بي مع الحقول المخصصة المتقدمة.
الحقل المخصص هو حقل صورة يقوم بإرجاع المعرف.
وظائف المساعد
أقوم بإضافة وظائف المساعد التالية في Code Snippets ، وافعل الشيء نفسه بأي طريقة تفضلها.
function b58_create_post_from_term ( $term, $post_type= "post" ) { $post_id = -1 * $term->term_id; // negative ID, to avoid clash with a valid post $post = new stdClass(); $post->ID = $post_id; $post->post_author = 1 ; $post->post_date = current_time( "mysql" ); $post->post_date_gmt = current_time( "mysql" , 1 ); $post->post_title = $term->name; $post->post_content = $term->description; $post->post_status = "publish" ; $post->comment_status = "closed" ; $post->ping_status = "closed" ; $post->post_name = "regions/" . $term->slug; $post->post_type = $post_type; $post->filter = "raw" ; // important! $wp_post = new WP_Post( $post ); wp_cache_add( $post_id, $wp_post, "posts" ); return $wp_post; } function b58_get_the_featured_image ( $get_url, $size = 'thumbnail' ) { global $post; $post_id = $post->ID; $thumbnail_id = 0 ; if ( $post_id > 0 ) { // this is a regular post. $thumbnail_id = get_post_thumbnail_id( $post_id ); } else { // this is our fake post and it doesn't // have a thumbnail ID so we have to use the // custom field we set for this term. $pos_term_id = -1 * $post_id; $thumbnail_id = get_field( "term_background" , "term_" . $pos_term_id ); } if ( $get_url ) { return wp_get_attachment_image_url( $thumbnail_id, $size ); } return $thumbnail_id; } function b58_get_the_link () { global $post; $post_id = $post->ID; if ( $post_id > 0 ) { return get_permalink( $post_id ); } // post id is negative, we use a negative post id in our dummy post object $pos_term_id = -1 * $post_id; $term_link = get_term_link( $pos_term_id ); return $term_link; }
لغة الكود: PHP ( php )
دعونا نراجع كل وظيفة في هذا المقتطف.
b58_create_post_from_term( $term, $post_type="post" )
هذا يأخذ عنصر WP Term ( $term
) وينشئ منشورًا مزيفًا من النوع الذي تم تعيينه في $ post_type.
يقوم بتعيين المعرف على الرقم السالب لمعرفه الفعلي أولاً كنوع من "العلم" للإشارة إلى أن هذا مصطلح وليس منشورًا فعليًا.
يقوم بتعيين بعض المتغيرات الأخرى اللازمة لكائن WP_Post ، ولكن الشيء الوحيد الملحوظ لغرضنا هو post_title.
ثم يضيف هذا المنشور إلى ذاكرة التخزين المؤقت wp ، في حالة طلب شيء ما هذا المنشور وبما أنه يحتوي على معرف سلبي ، فسوف يفشل إذا حاول الانتقال إلى قاعدة البيانات.
b58_get_the_featured_image( $get_url, $size = 'thumbnail' )
لغة الكود: PHP ( php )
إذا لم تقم بإضافة حقل مخصص به صورة للمصطلح ، فتخط هذه الوظيفة.
تأخذ هذه الوظيفة وسيطتين ، $get_url
والتي ستكون قيمة منطقية ، وهذا يحدد ما إذا كانت تُرجع معرف الصورة أو عنوان URL.
الوسيطة الثانية تحدد الحجم.
أولاً ، يتحقق مما إذا كان معرف المنشور الحالي سلبيًا ، وإذا كان سالبًا ، فهذا منشور مزيف يمثل مصطلحًا ، وإلا فهو منشور حقيقي.
إذا كان منشورًا مزيفًا ، فسنسترجع معرف الصورة باستخدام get_field
هذا المصطلح.
إذا كان منشورًا حقيقيًا ، فإننا نستخدم وظيفة get_post_thumbnail_id
المضمنة.
ثانيًا ، إذا كان $get_url
خطأً ، فسيتم إرجاع المعرف فقط. وإلا فإننا نستخدم wp_get_attachment_image_url
للحصول على عنوان url للصورة وإرجاعه.
b58_get_the_link()
يؤدي هذا إلى إرجاع الرابط (الرابط الثابت أو رابط المصطلح) لهذه المشاركة.
إذا كان معرّف المنشور سالبًا ، فهو منشور مزيف نستخدمه get_term_link
للحصول على الرابط ، بدلاً من get_permalink
إذا كان منشورًا حقيقيًا.
هذا هو الحال بالنسبة للوظائف المساعدة.
المكرر
أقوم بإضافة مكرر إلى الصفحة ، مع استعلام عن الوجهات. أستخدم نفس التنسيق مثل الأمثلة السابقة ، عنوان المنشور المركزي مع خلفية الصورة المميزة ، وروابط div إما الرابط الثابت للنشر أو رابط المصطلح.
بالنسبة لخلفية الصورة المميزة ، لا أستخدم طريقة الصورة المميزة المعتادة في البيانات الديناميكية. أستخدم طريقة PHP Function Return Value لأنني أرغب في استخدام وظيفة المساعد الخاصة بي لجلب صورة بدلاً من الطريقة الأخرى لأن العنصر قد يكون "منشورًا مزيفًا" (مصطلح.) لذلك بالنسبة لعنوان URL لخلفية div ، أستخدم PHP قيمة إرجاع الدالة مع اسم الوظيفة b58_get_the_featured_image
، والمعلمة true
. يمكنني تحديد الحجم هنا أيضًا لكنني لا أفعل ذلك.
نفس الفكرة للارتباط. لا يمكنني استخدام البيانات الديناميكية للرابط الثابت كما أفعل عادةً لأنه سيكون من الخطأ بالنسبة إلى المنشور المزيف ، لذلك أستخدم b58_get_the_link
بدلاً من ذلك.
ربط the_posts
تمامًا كما قبل إضافة كتل التعليمات البرمجية قبل وبعد المكرر ، بهذه الطريقة يمكننا تعيين وظيفة ليتم استدعاؤها باستخدام الخطاف وإزالة هذه الوظيفة بعد ذلك حتى لا تؤثر على الاستعلامات الأخرى.
هذا هو رمز كتلة الكود أعلى المكرر
أول كتلة رمز
<?php function b58_add_tax_links ( $posts, $query ) { // ignore if in admin if ( is_admin() ) { return $posts; } try { $terms = get_terms([ "taxonomy" => "regions" , "hide_empty" => true , "orderby" => "name" , "order" => "ASC" ]); } catch ( Exception $e) { echo 'Caught exception: ' , $e->getMessage(), "\n" ; return $posts; } if ( empty ( $terms ) ) { return $posts; } $new_posts = array (); foreach ( $terms as $term ) { for ( $i = 0 ; $i < count($posts); $i++ ) { if ( has_term( $term->slug, "regions" , $posts[$i] ) ) { $posts[$i]->post_title = $posts[$i]->post_title; $new_posts[] = $posts[$i]; } } // create a post object from this term. $term_post = b58_create_post_from_term( $term, "destinations" ); $new_posts[] = $term_post; } return $new_posts; } add_filter( 'the_posts' , 'b58_add_tax_links' , 10 , 2 ); ?>
لغة الكود: HTML ، XML ( xml )
لنستعرض هذا الرمز.
- لا تفعل شيئًا إذا كنت في لوحة تحكم المسؤول.
- بخلاف ذلك ، أقوم بتشغيل استعلام
get_terms
للتصنيف معregions
سبيكة ، مرتبة حسب الاسم بترتيب تصاعدي. يتم إرفاق تصنيف المناطق بنوع المنشور المخصص للوجهات ، وهي واحدة من القارات السبع التي تقع فيها الوجهة ، لذلك تقع نيروبي والقاهرة في إفريقيا ، وهونغ كونغ في آسيا ، وهكذا. - أضف بعض عمليات التحقق ومعالجة الأخطاء في حالة وجود خطأ إملائي في اسم المصطلحات أو في حالة عدم وجود شروط لتصنيف ، فإننا نعيد النتيجة الأصلية فقط.
- إذا اجتاز استعلام المصطلحات جميع عمليات التحقق ، أعلن عن مصفوفة فارغة جديدة تسمى
$new_posts
، سأضيف المنشورات إلى هذه المصفوفة وأعيدها بدلاً من مصفوفة المشاركات الفعلية. - كرر من خلال مصفوفة
$terms
، ولكل مصطلح أقوم بالتكرار عبر مصفوفة$posts
$ وأعثر على تلك التي تحتوي على هذا المصطلح وألحقه بـ$new_posts
. - بعد أن أنتهي من البحث في مصفوفة
$posts
، أقوم بإنشاء منشور مزيف بالمصطلح الحالي$term
وأعطيه نوع منشور من الوجهات (يمكن أن يكون أي شيء ، حقًا.) ثم أضفت هذا المنشور المزيف إلى$new_posts
.
عندما تعود الدالة ، يجب أن تبدو عناصر المصفوفة $new_posts
بالشكل التالي:
القاهرة ، نيروبي ، إفريقيا ، هونج كونج ، آسيا ، لندن ، أوروبا ... إلخ. أفريقيا وآسيا وأوروبا هي المنشورات المزيفة.
أخيرًا ، نضيف الوظيفة أعلاه إلى خطاف the_posts
.
الكتلة البرمجية الثانية
كتلة الكود أسفل المكرر هي:
<?php remove_filter( 'the_posts' , 'b58_add_tax_links' ); ?>
لغة الكود: HTML ، XML ( xml )
هذا يزيل الوظيفة من الخطاف.
نسّق القائمة
عند هذه النقطة ينتهي المكرر. يتم تجميع العناصر التي لها نفس التصنيف معًا ، وفي نهاية كل مجموعة يوجد ارتباط بأرشيف المصطلحات. ومع ذلك ، فإن القائمة مختلطة قليلاً ، وكلها تعمل معًا في شبكة كبيرة. أريد أن تكون كل مجموعة من العناصر ورابط الأرشيف الخاص بها في صف واحد ، وهذه هي طريقة القيام بذلك.
قم بإعداد العناصر
- حدد العنصر المكرر div أسفل المكرر وأضف سمة تسمى
data-post-id
مشاركة البيانات واستخدم معرّف النشر للبيانات الديناميكية لقيمته. - حدد المكرر وأعطه بعض المعرف أو فقط انسخ المعرف الحالي ، معرفتي هي
_dynamic_list-5-343
.
مسج
في الجزء العلوي من Code Block (سواء كان أحدهما يعمل أو حتى جديدًا) ، أضفت الكود التالي إلى قسم Javascript.
jQuery( ( $ ) => { $( "#_dynamic_list-5-343 [data-post-id^=\"-\"]" ).after( $( "<div />" ) .css({ height : "0px" , "flex-basis" : "100%" }) ) });
لغة الكود: جافا سكريبت ( جافا سكريبت )
يؤدي هذا إلى إضافة div بعد المصطلحات div (معرف المنشور يبدأ بـ "-" ، سالب) ويكون div له flex-basis: 100%
height: 0px
وهو ما يشبه إضافة فاصل سطر في صف المكرر.
وهذا كل شيء.
نتيجة
كل عنصر مكرر له عناوين المنشورات الخاصة به والصورة المميزة كخلفية. بالنسبة لعناصر المصطلحات ، أضفت كلمة "استكشاف" وقمت بتعيينها ليتم عرضها بشكل مشروط عندما يكون معرف المنشور سالبًا (<0).
استنتاج
نأمل من خلال هذه التقنيات أن تتمكن من إضفاء الإثارة على مكررات Oxygen Builder أو Easy Posts.
إذا كان لديك أي أسئلة ، فيمكنك إرسال رسالة مباشرة عبر البريد الإلكتروني على twitterrobchankh أو ترك تعليق على Facebook حيث سأقوم بنشر هذا.