PHP: استخدم WordPress API لإنشاء رمز قصير لسرد الصفحات الفرعية

وورد بى بى

نحن نعمل على تنفيذ معقد للغاية لعميل مؤسسة في الوقت الحالي. يتم بناء الموقع في WordPress ولكن به الكثير من الأجراس والصفارات. في كثير من الأحيان ، عندما أقوم بهذا النوع من العمل ، أود حفظ الرمز المخصص لإعادة استخدامه لاحقًا في مواقع أخرى. في هذه الحالة ، اعتقدت أنها وظيفة مفيدة ، وأردت مشاركتها مع العالم. نحن نستخدم ملف موضوع Avada WordPress مع Fusion Page Builder كموضوع رئيسي ، ونشر قدرًا كبيرًا من التعليمات البرمجية المخصصة في موضوعنا الفرعي.

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

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

لذلك ، أولاً ، كان علينا إضافة دعم مقتطف إلى قالب الصفحة. في function.php لموضوعهم ، أضفنا:

add_post_type_support ('page'، 'excerpt') ؛

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

// سرد الصفحات الفرعية في دالة القائمة dknm_list_child_pages ($ atts، $ content = "") {global $ post؛ $ atts = shortcode_atts (array ('ifempty' => 'No Records'، 'aclass' => '')، $ atts، 'list_subpages')؛ $ args = array ('post_type' => 'page'، 'posts_per_page' => -1، 'post_parent' => $ post-> ID، 'orderby' => 'publish_date'، 'order' => 'DESC' ،) ؛ $ الأصل = WP_Query جديد ($ args) ؛ إذا ($ parent-> have_posts ()) {$ string. = $ content. ' "؛ while (parent-> have_posts ()): $ parent-> the_post () ؛ سلسلة $. = '".get_the_title ()." "؛ if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt ()؛ } سلسلة $. = ' "؛ في الوقت نفسه } else {$ string = ' '. $ atts [' ifempty '].' "؛ } wp_reset_postdata () ، إرجاع سلسلة $؛ } add_shortcode ('list_subpages'، 'dknm_list_child_pages') ؛

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

[list_subpages aclass = "button" ifempty = "عذرًا ، ليس لدينا حاليًا أي فرص عمل."] قائمة الوظائف [/ list_subpages]

والنتيجة هي قائمة لطيفة ونظيفة وغير مرتبة للوظائف المنشورة ، وهي عبارة عن صفحات فرعية أسفل صفحة وظائفهم.

إذا لم يتم نشر أي وظائف (لا توجد صفحات فرعية) ، فسيتم نشر:

عذرا ، ليس لدينا حاليا أي فرص عمل.

إذا كانت هناك وظائف منشورة (صفحات فرعية) ، فسيتم نشرها:

قائمة الوظائف:

ما رأيك؟

يستخدم هذا الموقع نظام Akismet لتقليل الرسائل الضارة. تعرف كيف تتم معالجة بيانات تعليقك.