نحن نعمل على تنفيذ معقد للغاية لعميل مؤسسة في الوقت الحالي. يتم بناء الموقع في 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]
والنتيجة هي قائمة لطيفة ونظيفة وغير مرتبة للوظائف المنشورة ، وهي عبارة عن صفحات فرعية أسفل صفحة وظائفهم.
إذا لم يتم نشر أي وظائف (لا توجد صفحات فرعية) ، فسيتم نشر:
عذرا ، ليس لدينا حاليا أي فرص عمل.
إذا كانت هناك وظائف منشورة (صفحات فرعية) ، فسيتم نشرها:
قائمة الوظائف:
- أحدث صفحة تابعة - مقتطف من الصفحة الفرعية
- الصفحة الفرعية التالية - مقتطف من الصفحة الفرعية
- الصفحة الفرعية التالية - مقتطف من الصفحة الفرعية