PHP: Quyidagi sahifalarni ro'yxatlash uchun qisqa kod yaratish uchun WordPress API-dan foydalaning
Biz hozirda korporativ mijoz uchun juda murakkab dastur ustida ishlayapmiz. Sayt WordPress-da qurilgan, ammo bir necha qo'ng'iroq va hushtak bor. Ko'pincha, men ushbu turdagi ishlarni bajarayotganda, keyinchalik boshqa saytlarda repurpozitsiya qilish uchun maxsus kodni saqlashni yaxshi ko'raman. Bunday holda, men buni juda foydali funktsiya deb o'yladim, uni dunyo bilan bo'lishishni xohladim. Biz ishlatmoqdamiz Avada WordPress mavzusi Fusion Page Builder bilan ota-ona mavzusi sifatida va bizning bolalarimiz mavzusida biroz maxsus kodlarni joylashtirish.
WordPress allaqachon API-da wp_list_pages va get_pages kabi pastki sahifalarni ro'yxatlash uchun ishlatilishi mumkin bo'lgan ikkita funktsiyaga ega. Muammo shundaki, agar siz bir qator ma'lumotlarga ega bo'lgan ro'yxatni dinamik ravishda yaratmoqchi bo'lsangiz, ular etarli ma'lumotni qaytarishmaydi.
Ushbu mijoz uchun ular ish tavsiflarini joylashtirmoqchi va ish joylari ro'yxati avtomatik ravishda nashr etilgan sanasi bo'yicha kamayib boradigan tartibda tuzilishini xohladilar. Shuningdek, ular sahifaning bir qismini ko'rsatishni xohlashdi.
Shunday qilib, avval sahifa shabloniga parcha yordamini qo'shishimiz kerak edi. Functions.php-da ularning mavzusi uchun biz quyidagilarni qo'shdik:
add_post_type_support ('sahifa', 'ko'chirma');
Keyin, biz subpages ro'yxatini, ularga havolalarni va ular uchun parchani yaratadigan maxsus qisqa kodni ro'yxatdan o'tkazishimiz kerak edi. Buni qiling, biz foydalanishimiz kerak WordPress Loop. Functions.php-da biz quyidagilarni qo'shdik:
// Ro'yxat funktsiyasidagi pastki sahifalarni ro'yxati dknm_list_child_pages ($ atts, $ content = "") {global $ post; $ atts = shortcode_atts (array ('ifempty' => 'Yozuv yo'q', 'aclass' => ''), $ atts, 'list_subpages'); $ args = array ('post_type' => 'sahifa', 'posts_per_page' => -1, 'post_parent' => $ post-> ID, 'orderby' => 'published_date', 'order' => 'DESC' ,); $ parent = yangi WP_Query ($ args); if ($ parent-> have_posts ()) {$ string. = $ content. ' '; while ($ parent-> have_posts ()): $ parent-> the_post (); $ string. = ' '.get_the_title ().' '; if (has_excerpt ($ post-> ID)) {$ string. = '-' .get_the_excerpt (); } $ string. = ' '; tugaydi; } boshqa {$ string = ' '. $ atts [' ifempty '].' '; } wp_reset_postdata (); return $ string; } add_shortcode ('list_subpages', 'dknm_list_child_pages');
Endi yorliq va parcha bilan bolalar sahifalarini ko'rsatish uchun qisqa kodni sayt bo'ylab amalga oshirish mumkin. Foydalanish:
[list_subpages aclass = "button" ifempty = "Kechirasiz, hozirda bizda hech qanday ochilish joyi yo'q."] Ishlar ro'yxati [/ list_subpages]
Natijada, nashr etilgan ishlarning chiroyli, toza tartibsiz ro'yxati, bu ularning martaba sahifasi ostidagi bolalar sahifalari.
Agar ish joylari bo'lmagan bo'lsa (bolalar sahifalari yo'q), u quyidagilarni e'lon qiladi:
Kechirasiz, hozirda bizda biron bir ish joyi mavjud emas.
Agar ish joylari (bolalar sahifalari) chop etilgan bo'lsa, u quyidagilarni e'lon qiladi:
Ishlar ro'yxati:
- Bolalar uchun so'nggi sahifa - Bolalar sahifasidan parcha
- Keyingi bolalar sahifasi - Bolalar sahifasidan parcha
- Keyingi bolalar sahifasi - Bolalar sahifasidan parcha